VBA – Supprimer une Ligne ou une Colonne Entière

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on janvier 12, 2022

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
vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA