VBA – Supprimer une Ligne ou une Colonne Entière
In this Article
Ce tutoriel présente différentes façons de supprimer des lignes et des colonnes dans Excel à l’aide de VBA.
Supprimer une Ligne ou une Colonne Entière
Pour supprimer une ligne entière en VBA, utilisez cette ligne de code :
Rows(1).Delete
Remarquez que nous utilisons la méthode Delete pour supprimer une ligne.
Au lieu de faire référence à l’objet Rows, vous pouvez faire référence à des lignes en utilisant l’Objet Range correspondant avec EntireRow:
Range("a1").EntireRow.Delete
De même, pour supprimer une colonne entière, utilisez ces lignes de code :
Columns(1).Delete
Range("a1").EntireColumn.Delete
Suppression de Plusieurs Lignes ou Colonnes
En utilisant la même logique, vous pouvez également supprimer plusieurs lignes à la fois :
Rows("1:3").Delete
ou des colonnes :
Columns("A:C").Delete
Remarquez que nous faisons référence ici aux numéros / lettres spécifiques des lignes et des colonnes entre guillemets.
Bien entendu, vous pouvez également faire référence à la ligne entière d’une plage :
Range("a1:a10").EntireRow.Delete
Remarque : les exemples ci-dessous ne présentent que la suppression de lignes, mais comme vous pouvez le voir ci-dessus, la syntaxe est pratiquement identique pour supprimer des colonnes.
Suppression de Lignes Vides
Cet exemple permet de supprimer une ligne si elle est entièrement vide:
Sub SupprimerLigneVides()
Dim cell As Range
For Each cell In Range("b2:b20")
If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then
cell.EntireRow.Delete
End If
Next cell
End Sub
Elle fait appel à la formule de feuille de calcul Excel : NBVAL (COUNTA en anglais).
Supprimer une Ligne si une Cellule est Vide
Cette fonction permet de supprimer une ligne si une colonne spécifique de cette ligne est vide (dans l’exemple suivant, la colonne B) :
Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Suppression d’une Ligne en Fonction de la Valeur d’une Cellule
Cette fonction permet de parcourir une plage et de supprimer des lignes si la valeur d’une cellule de cette ligne indique « supprimer« .
Sub SupprimerLigneSelonValeurSpécifique()
Dim cell As Range
For Each cell In Range("b2:b20")
If cell.Value = "supprimer" Then
cell.EntireRow.Delete
End If
Next cell
End Sub
Autres Exemples de Suppression de Lignes et de Colonnes
Suppression des Lignes en Double
Ce code permet de supprimer toutes les lignes en double d’une plage :
Range("b2:c100").RemoveDuplicates Columns:=2
Remarquez que nous avons défini Columns:=2. Cela indique à VBA de vérifier les deux premières colonnes de données pour déterminer si les lignes sont des doublons. Un doublon n’est trouvé que si les deux colonnes ont des valeurs en double.
Si nous avions donné la valeur 1, seule la première ligne aurait été vérifiée.
Suppression des Lignes de la Table
Ce code permet de supprimer la deuxième ligne d’un tableau en faisant référence à l’objet ListObjects.
ThisWorkbook.Sheets("Feuil1").ListObjects("liste1").ListRows(2).Delete
Suppression de Lignes Filtrées
Pour supprimer uniquement les lignes qui sont visibles après le filtrage :
Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete
Suppression des Lignes de la Plage
Ce code va supprimer toutes les lignes de la plage :
Range("a1:a10").EntireRow.Delete
Suppression des Lignes Sélectionnées
Ce code supprimera toutes les lignes sélectionnées :
Selection.EntireRow.Delete
Supprimer la Dernière Ligne
Ce code supprimera la dernière ligne utilisée dans la colonne B :
Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete
En changeant 2 en 1, vous pouvez supprimer la dernière ligne utilisée dans la colonne A, etc :
Cellules(Rows.Count, 1).End(xlUp).EntireRow.Delete
Suppression de Colonnes par Numéro
Pour supprimer une colonne par son numéro, utilisez un code comme celui-ci :
Columns(2).Delete