Comment supprimer une ligne en utilisant VBA (14 façons)

  • Partage Ça
Hugh West

Si vous cherchez les moyens les plus simples de supprimer une rangée en utilisant VBA alors vous êtes au bon endroit.

Plongeons dans l'article principal.

Télécharger le cahier d'exercices

VBA Supprimer une rangée.xlsm

14 façons de supprimer une rangée en utilisant VBA

Ici, j'ai les trois tableaux de données pour montrer les manières de supprimer des lignes en utilisant VBA Le premier tableau contient quelques Produits d'une entreprise et leur Tailles , Prix .

Le second a un peu Codes des produits et leurs correspondants Tailles des produits et Prix

Et le dernier contient des Noms des projets et leurs Dates de début et Coûts .

Pour créer l'article, j'ai utilisé Microsoft Excel 365 vous pouvez utiliser toute autre version selon votre convenance.

Méthode 1 : supprimer une seule ligne en utilisant VBA

Disons que vous voulez supprimer la ligne contenant Produit Chaussure 1, et pour supprimer cette seule ligne, vous pouvez suivre cette méthode.

Step-01 :

➤Go to Développeur Tab>> ; Visual Basic Option

Ensuite, le Éditeur Visual Basic s'ouvrira.

➤Go to Insérer Tab>> ; Module Option

Après cela, un Module sera créé.

Step-02 :

➤Write the following code

 Sub dltrow1() Worksheets("Single").Rows(7).EntireRow.Delete End Sub 

Ici, "Simple" est le nom de la feuille de calcul, et Rangs(7) sélectionnera le numéro de ligne.

.EntireRow.Delete supprimera toute la ligne 7.

➤Press F5

Résultat :

De cette façon, vous supprimerez la ligne contenant le numéro d'identification de l'utilisateur. Produit nom Chaussure 1 .

Lire la suite : Comment supprimer des lignes dans Excel : 7 méthodes

Méthode 2 : Suppression de plusieurs lignes à l'aide de VBA

Si vous voulez supprimer plusieurs lignes, comme les lignes contenant l'élément Produit noms Chaussure 1 , Chaussure2, et Chaussure3 alors vous pouvez suivre ceci VBA code.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrow2() Rows(13).EntireRow.Delete Rows(10).EntireRow.Delete Rows(7).EntireRow.Delete End Sub 

Ici, les numéros de ligne 13, 10, et 7 seront supprimés et pour écrire en série les numéros de ligne, vous devez écrire du dernier numéro de ligne au premier numéro de ligne comme ce code.

Sinon, après avoir supprimé la première rangée comme la rangée 7, les rangées restantes sous cette rangée se déplaceront d'une rangée vers le haut et ainsi la rangée 10 sera la rangée 9, et la rangée 13 sera la rangée 12. Pour cette raison, vous ne pourrez pas supprimer les rangées correctes.

➤Press F5

Résultat :

Ensuite, vous supprimerez les lignes contenant les éléments suivants Produit noms Chaussure 1 , Chaussure2, et Chaussure3 .

Lire la suite : Comment supprimer plusieurs lignes dans Excel (3 méthodes)

Méthode-3 : Suppression d'une ligne en sélectionnant

Ici, je vais montrer comment supprimer une ligne par rapport à une cellule active de cette ligne.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrow3() ActiveCell.EntireRow.Delete End Sub 

Cela supprimera la ligne ayant une cellule active.

➤Save the code.

Step-02 :

➤Sélectionnez n'importe quelle cellule d'une ligne que vous voulez supprimer ( Ici, j'ai sélectionné la cellule . B7 )

➤Go to Développeur Tab>> ; Macros Option

Après cela, le Macro L'assistant s'ouvre.

➤Sélectionnez le Nom de la macro dltrow3 et appuyez sur Exécuter

Résultat :

Par la suite, vous supprimerez la ligne contenant l'élément Produit nom Chaussure 1 .

Méthode 4 : Suppression de toutes les lignes de la sélection

Pour supprimer toutes les lignes d'une sélection, vous pouvez suivre cette méthode.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrow4() Selection.EntireRow.Delete End Sub 

Cela supprimera toutes les lignes de la sélection.

➤Save the code.

Step-02 :

➤Sélectionnez la plage de lignes que vous souhaitez supprimer (Ici, j'ai sélectionné la plage... B7:D9 )

➤Go to Développeur Tab>> ; Macros Option

Après cela, le Macro L'assistant s'ouvre.

➤Sélectionnez le Nom de la macro dltrow4 et appuyez sur Exécuter

Résultat :

Ensuite, vous supprimerez les lignes contenant les éléments suivants Produit noms Chaussure 1 , Veste 1, et Veste2 .

Lire la suite : Comment supprimer les lignes sélectionnées dans Excel (8 approches)

Méthode 5 : Suppression d'une rangée si une cellule est vide

Ici, j'ai une cellule vide qui est B9 (j'ai supprimé la valeur de cette cellule pour cette méthode), et en utilisant un fichier VBA je vais supprimer la ligne ayant B9 cellule.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrow5() Range("B5:D13").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

Il supprimera toutes les lignes de l'intervalle "B5:D13" ayant une cellule vide.

➤Press F5

Résultat :

Vous pourrez alors supprimer la ligne contenant la cellule vide.

Lire la suite : Comment supprimer les lignes vides dans Excel (11 méthodes)

Méthode 6 : Suppression d'une rangée si la rangée entière est vide

Ici, j'ai une cellule vide qui est B9 (j'ai supprimé les valeurs pour cette méthode), et une rangée vide qui est la rangée 12 (j'ai supprimé les valeurs pour cette méthode), et en utilisant une fonction VBA et le Fonction COUNTA Je vais supprimer la ligne qui est vide.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrow6() Dim cell As Range For Each cell In Range("B5:D13") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" est la plage de données et POUR La boucle fonctionnera pour chaque cellule de cette plage.

CountA(cell.EntireRow) renvoie le nombre de cellules non vides et lorsqu'il atteint 0, la ligne est supprimée.

➤Press F5

Résultat :

Après cela, vous pourrez supprimer la ligne vide, mais aucune ligne dont toutes les cellules ne sont pas vides ne sera supprimée.

Lire la suite : Comment utiliser VBA pour supprimer les lignes vides dans Excel

Méthode 7 : Suppression de chaque nième rangée

Vous pouvez supprimer chaque nième ligne (dans ce cas, chaque troisième ligne) en suivant cette méthode.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrow7() rc = Range("B5:D13").Rows.Count For i = rc To 1 Step -3 Range("B5:D13").Rows(i).EntireRow.Delete Next i End Sub 

"B5:D13" est la plage de données et rc retournera le nombre total de lignes de cette plage, soit 9 .

Ici, le POUR La boucle commencera à partir de la dernière ligne qui est rc ou 9 dans ce cas et se termine par la première ligne.

Étape 3 permettra de supprimer chaque 3ème rangée dans cette plage.

➤Press F5

Résultat :

Ensuite, vous supprimerez les lignes contenant les éléments suivants Produit noms Chaussure 1 , Chaussure2, et Chaussure3 .

Lire la suite : Comment supprimer chaque nième rangée dans Excel (6 façons les plus simples)

Lectures similaires :

  • Comment supprimer des rangées sélectionnées avec Excel VBA (guide étape par étape)
  • Supprimer les lignes inutilisées dans Excel (8 méthodes simples)
  • Comment supprimer les lignes cachées dans Excel (3 méthodes)
  • Supprimer des lignes infinies dans Excel (5 façons simples)
  • Comment supprimer les lignes qui s'éternisent dans Excel (4 méthodes simples)

Méthode 8 : Suppression d'une rangée basée sur la valeur d'une cellule

Dans cette méthode, je vais supprimer la ligne ayant une valeur spécifique. Chemise 2 .

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrow8() Dim cell As Range For Each cell In Range("B5:D13") If cell.Value = "Shirt 2" Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" est la plage de données et le POUR La boucle fonctionnera pour chaque cellule de cette plage.

Si une cellule d'une ligne contient la valeur "Chemise 2" alors la ligne sera supprimée.

➤Press F5

Résultat :

De cette manière, vous supprimerez la ligne contenant le fichier Produit nom Chemise 2 .

Lire la suite : Macro VBA pour supprimer une ligne si la cellule contient une valeur dans Excel (2 méthodes)

Méthode-9 : Suppression des rangées en double

Ici, j'ai deux lignes ayant un Code produit 97375 et donc je veux supprimer une de ces lignes qui sont marquées par une boîte rouge ci-dessous.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrow9() Range("B5:D13").RemoveDuplicates Columns:=1 End Sub 

Ici, "B5:D13" est la plage de données et Colonnes : =1 signifie qu'il recherchera les valeurs en double uniquement dans une colonne, qui est la colonne de départ. Colonne B mais si vous souhaitez effectuer des recherches dans d'autres colonnes également, vous pouvez utiliser ce nombre en fonction de vos besoins.

➤Press F5

Résultat :

Ensuite, vous pourrez supprimer la ligne qui est similaire à une autre ligne.

Lire la suite : Comment supprimer les lignes en double dans Excel avec VBA (8 méthodes efficaces)

Méthode-10 : Suppression de lignes dans un tableau

Supposons que vous avez la table suivante dont le nom est Tableau 1 et maintenant vous voulez supprimer la rangée numéro 6 de ce tableau. Pour ce faire, vous pouvez suivre cette méthode.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrow10() ActiveWorkbook.Worksheets("Table").ListObjects("Table1").ListRows(6).Delete End Sub 

Ici, "Table" est le nom de la feuille, "Table1" est le nom de la table et 6 est le numéro de ligne de cette table que vous voulez supprimer.

➤Press F5

Résultat :

De cette façon, vous supprimerez la ligne souhaitée de ce tableau.

Lire la suite : Comment supprimer les lignes en double basées sur une colonne en utilisant Excel VBA

Méthode-11 : Suppression des lignes visibles après le filtrage

Ici, j'ai un tableau de données qui est filtré par l'élément Prix pour les valeurs supérieures à $1,500.00 et je veux supprimer toutes les lignes visibles après le filtrage.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrow11() Range("B5:D13").SpecialCells(xlCellTypeVisible).EntireRow.Delete End Sub 

Ici, "B5:D13" est la plage de données.

➤Press F5

Maintenant, toutes les lignes visibles après le filtrage seront supprimées. Vous pouvez maintenant faire revenir les lignes cachées en sélectionnant l'option Filtre signe dans le Prix colonne.

➤Cliquez sur le Sélectionner tout option

➤Press OK

Résultat :

Enfin, vous récupérerez les lignes cachées dans le tableau de données.

Lire la suite : Comment filtrer et supprimer des lignes avec VBA dans Excel (2 méthodes)

Méthode 12 : Suppression d'une rangée basée sur la dernière cellule active

Ici, ma dernière cellule active est la cellule B13 et je veux supprimer cette ayant la dernière cellule active du tableau de données suivant.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrow12() Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete End Sub 

Ici, 2 signifie Colonne B sur lequel j'ai ma cellule active, vous pouvez changer le numéro en fonction de vos besoins.

➤Press F5

Résultat :

De cette façon, vous supprimerez votre dernière ligne active.

Lire la suite : Code Excel VBA pour supprimer des lignes en fonction de la valeur de plusieurs cellules (3 critères)

Méthode 13 : Suppression des lignes ayant des chaînes de caractères quelconques

Supposons que vous vouliez supprimer les lignes ayant une chaîne quelconque, et pour ce faire, vous pouvez suivre cette méthode.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrow13() Dim FirstRow As Long Dim LastRow As Long Dim FirstColumn As Long Dim LastColumn As Long Dim sheet As Worksheet Dim Rng As Range FirstRow = 5 FirstColumn = 2 Set sheet = Worksheets("String") With sheet With .Cells LastRow = .Find(What:="*", LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row LastColumn = .Find(What:="*",LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column End With Set Rng = .Range(.Cells(FirstRow, FirstColumn), .Cells(LastRow, LastColumn)) End With On Error Resume Next Rng.SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow.Delete End Sub 

Ici, "string" est le nom de la feuille, le numéro de la première rangée de cette plage de données est 5 et le numéro de la colonne de départ est 2

Le site Avec vous permet de spécifier un objet ou un type défini par l'utilisateur une seule fois pour toute une série de déclarations.

En cas d'erreur, reprendre la suite spécifie que, lorsqu'une erreur d'exécution se produit, le contrôle passe à l'instruction qui suit celle où l'erreur se produit.

LastRow et DernièreColonne renvoie la dernière ligne et la dernière colonne de la plage de données.

Cellules spéciales (xlCellTypeConstants, xlTextValues) sélectionnera les lignes ayant des valeurs de texte dans la plage.

➤Press F5

Résultat :

Ensuite, vous supprimerez les lignes contenant une chaîne de texte quelconque.

Lire la suite : Raccourci Excel pour supprimer des lignes (avec techniques en prime)

Méthode 14 : Suppression d'une rangée basée sur des dates

Ici, je vais supprimer les lignes ayant une date spéciale. 11/12/2021 (mm/jj/aaaa) dans cette méthode en utilisant l'option Fonction DATEVALUE .

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrow14() Dim FirstRow As Long Dim LastRow As Long Dim CriteriaColumn As Long Dim myDate As Date Dim sheet As Worksheet Dim i As Long Dim myRowsWithDate As Range FirstRow = 5 CriteriaColumn = 3 myDate = DateValue("11/12/2021") Set sheet = Worksheets("Date") With sheet LastRow = .Cells.Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row For i = LastRow To FirstRow Step -1 With .Cells(i, CriteriaColumn) If .Value = myDate Then If Not myRowsWithDate Is Nothing Then Set myRowsWithDate = Union(myRowsWithDate, .Cells) Else Set myRowsWithDate = .Cells End If End WithNext i End With If Not myRowsWithDate Is Nothing Then myRowsWithDate.EntireRow.Delete End Sub 

Ici, "Date" est le nom de la feuille, le numéro de la première rangée de cette plage de données est 5 et le numéro de la colonne de critères (qui contient des dates) est le suivant 3 .

Le site Avec vous permet de spécifier un objet ou un type défini par l'utilisateur une seule fois pour toute une série de déclarations.

En cas d'erreur, reprendre la suite spécifie que, lorsqu'une erreur d'exécution se produit, le contrôle passe à l'instruction qui suit celle où l'erreur se produit.

LastRow renvoie la dernière ligne de la plage de données et, ici, l'option POUR La boucle commencera à partir de la dernière ligne qui est LastRow ou 6 dans ce cas, et se termine par la première ligne.

DATEVALUE convertira la date du texte en valeur.

Ici, Union retournera l'union de plusieurs plages correspondant aux cellules ayant la date 11/12/2021 et enfin, les plages seront supprimées.

➤Press F5

Résultat :

Après cela, vous supprimerez les lignes ayant une certaine date de 11/12/2021 .

Contenu connexe : Excel VBA pour supprimer des lignes contenant des données spécifiques (9 exemples)

Section pratique

Pour vous entraîner vous-même, nous avons fourni un Pratique comme ci-dessous dans une feuille nommée Pratique S'il vous plaît, faites-le vous-même.

Conclusion

Dans cet article, j'ai essayé de couvrir les méthodes les plus simples pour utiliser VBA efficacement pour la suppression des rangs. J'espère que vous trouverez cela utile. Si vous avez des suggestions ou des questions, n'hésitez pas à les partager dans la section des commentaires.

Hugh West est un formateur et analyste Excel très expérimenté avec plus de 10 ans d'expérience dans l'industrie. Il est titulaire d'un baccalauréat en comptabilité et finance et d'une maîtrise en administration des affaires. Hugh a une passion pour l'enseignement et a développé une approche pédagogique unique qui est facile à suivre et à comprendre. Sa connaissance approfondie d'Excel a aidé des milliers d'étudiants et de professionnels du monde entier à améliorer leurs compétences et à exceller dans leur carrière. Grâce à son blog, Hugh partage ses connaissances avec le monde, offrant des tutoriels Excel gratuits et une formation en ligne pour aider les particuliers et les entreprises à atteindre leur plein potentiel.