VBA Supprimer une ligne ou une colonne entière – Automatiser ExcelAutomatiser Excel

Ce tutoriel va démontrer différentes façons de supprimer des lignes et des colonnes dans Excel en utilisant 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

Notez que nous utilisons la méthode Delete pour supprimer une ligne.

Au lieu de référencer l’objet Rows, vous pouvez référencer les rangées en fonction de leur objet Range 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

Supprimer 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

Notez qu’ici nous référençons les numéros / lettres spécifiques des lignes et des colonnes entourés de guillemets.

Bien sûr, vous pouvez également faire référence à la ligne entière d’une plage:

Range("a1:a10").EntireRow.Delete

Note : Les exemples ci-dessous ne démontrent que la suppression de lignes, cependant comme vous pouvez le voir ci-dessus, la syntaxe est pratiquement identique pour supprimer des colonnes.

Supprimer des lignes vides / vides

Cet exemple supprimera une ligne si la ligne entière est vide :

Sub DeleteRows_EntireRowBlank()Dim cell As RangeFor Each cell In Range("b2:b20") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End IfNext cellEnd Sub

Il fait appel à la fonction de feuille de calcul Excel : COUNTA.

Supprimer une ligne si la cellule est vide

Ceci supprimera une ligne si une colonne spécifique de cette ligne est vide (dans ce cas, la colonne B):

Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Supprimer une ligne en fonction de la valeur de la cellule

Ceci parcourra en boucle une plage, et supprimera des lignes si une certaine valeur de cellule dans cette ligne dit « supprimer ».

Sub DeleteRowswithSpecificValue()Dim cell As RangeFor Each cell In Range("b2:b20") If cell.Value = "delete" Then cell.EntireRow.Delete End IfNext cellEnd Sub

Autres exemples de suppression de ligne et de colonne

Suppression de lignes en double

Ce code supprimera toutes les lignes en double dans une plage:

Range("b2:c100").RemoveDuplicates Columns:=2

Notez que nous avons défini Columns:=2. Cela indique à VBA de vérifier les deux premières colonnes de données lorsqu’il considère si les lignes sont des doublons. Un doublon n’est trouvé que lorsque les deux colonnes ont des valeurs dupliquées.

Si nous avions mis cette valeur à 1, seule la première ligne aurait été vérifiée pour les valeurs dupliquées.

Delete Table Rows

Ce code supprimera la deuxième ligne dans une Table en faisant référence à ListObjects.

ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete

Supprimer les lignes filtrées

Pour ne supprimer que les lignes visibles après filtrage :

Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete

Supprimer les lignes de la plage

Ce code supprimera toutes les lignes de la plage :

Range("a1:a10").EntireRow.Delete

Supprimer les 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 transformant 2 en 1, vous pouvez supprimer la dernière ligne utilisée dans la colonne A, etc.:

Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete

Supprimer les colonnes par leur numéro

Pour supprimer une colonne par son numéro, utilisez un code comme celui-ci :

Columns (2).Delete

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.