Supprimer ou insérer des lignes en fonction de la valeur de la cellule

Ce didacticiel montrera comment supprimer ou insérer des lignes en fonction des valeurs de cellule.

Supprimer la ligne en fonction de la valeur de la cellule

Cela va parcourir une plage et supprimer des lignes si la colonne A dit « supprimer ».

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue()'Déclarer les variablesDim LastRow aussi longtemps, FirstRow aussi longtempsDim Row aussi longtempsAvec ActiveSheet'Définir la première et la dernière lignePremière ligne = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Parcourir les lignes (de bas en haut)Pour la ligne = LastRow à FirstRow Étape -1Si .Range("A" & Row).Value = "delete" Then.Range("A" & Row).EntireRow.DeleteFin siLigne suivanteTerminer parFin du sous-marin

Nous devons commencer la boucle par la ligne du bas car la suppression d'une ligne déplacera les données, en sautant des lignes si vous bouclez de haut en bas.

Notez également qu'au lieu de saisir manuellement la dernière ligne, nous calculons la dernière ligne utilisée.

Supprimer la ligne - Basé sur le filtre

Dans l'exemple précédent, nous avons parcouru les lignes en boucle, en supprimant chaque ligne qui répond aux critères. Alternativement, nous pouvons utiliser le filtre automatique d'Excel pour filtrer les lignes en fonction de certains critères, puis supprimer les lignes visibles :

12345678910111213141516171819202122232425 Sub FilterAndDeleteRows()'Déclarer la variable wsDim ws As Feuille de calculDéfinir ws = ActiveSheet'Réinitialiser les filtres existantsEn cas d'erreur Reprendre ensuitews.ShowAllDataEn cas d'erreur GoTo 0'Appliquer le filtrews.Range("a1:d100").Champ de filtre automatique :=1, Criteria1 :="delete"'Supprimer des lignesApplication.DisplayAlerts = Fauxws.Range("a1:d100").SpecialCells(xlCellTypeVisible).SupprimerApplication.DisplayAlerts = True'Effacer le filtreEn cas d'erreur Reprendre ensuitews.ShowAllDataEn cas d'erreur GoTo 0Fin du sous-marin

Supprimer la ligne en fonction des critères de la cellule

Cela bouclera sur une plage, en supprimant des lignes si la cellule de la colonne A répond à certains critères (< 0) :

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue()'Déclarer les variablesDim LastRow aussi longtemps, FirstRow aussi longtempsDim Row aussi longtempsAvec ActiveSheet'Définir la première et la dernière lignePremière ligne = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Parcourir les lignes (de bas en haut)Pour la ligne = LastRow à FirstRow Étape -1Si .Range("A" & Row).Value < 0 Then.Range("A" & Row).EntireRow.DeleteFin siLigne suivanteTerminer parFin du sous-marin

Programmation VBA | Le générateur de code fonctionne pour vous !

Supprimer la ligne si la cellule est vide

Cela bouclera sur une plage, en supprimant une ligne si une cellule de la colonne A est vide :

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue()'Déclarer les variablesDim LastRow aussi longtemps, FirstRow aussi longtempsDim Row aussi longtempsAvec ActiveSheet'Définir la première et la dernière lignePremière ligne = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Parcourir les lignes (de bas en haut)Pour la ligne = LastRow à FirstRow Étape -1Si .Range("A" & Row).Value = "" Then.Range("A" & Row).EntireRow.DeleteFin siLigne suivanteTerminer parFin du sous-marin

Supprimer la ligne vide

Alternativement, si vous souhaitez supprimer une ligne si la ligne entière est vide (Cliquez sur le lien pour une méthode légèrement différente), vous pouvez utiliser ce code :

1234567891011121314151617181920 Sub DeleteBlankRows()'Déclarer les variablesDim LastRow aussi longtemps, FirstRow aussi longtempsDim Row aussi longtempsAvec ActiveSheet'Définir la première et la dernière lignePremière ligne = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Parcourir les lignes (de bas en haut)Pour la ligne = LastRow à FirstRow Étape -1Si WorksheetFunction.CountA(.Rows(Row)) = 0 Alors.Lignes(Ligne).Ligne entière.SupprimerFin siLigne suivanteTerminer parFin du sous-marin

Supprimer la ligne si la cellule contient une valeur

Cela bouclera sur une plage, en supprimant une ligne si la cellule de la colonne A n'est pas vide :

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue()'Déclarer les variablesDim LastRow aussi longtemps, FirstRow aussi longtempsDim Row aussi longtempsAvec ActiveSheet'Définir la première et la dernière lignePremière ligne = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Parcourir les lignes (de bas en haut)Pour la ligne = LastRow à FirstRow Étape -1Si .Range("A" & Row).Value "" Then.Range("A" & Row).EntireRow.DeleteFin siLigne suivanteTerminer parFin du sous-marin

Fatigué de rechercher des exemples de code VBA ? Essayez AutoMacro !

Insérer une ligne en fonction de la valeur de la cellule

Cela bouclera sur une plage, en insérant des lignes si une certaine cellule de cette ligne dit « insérer » :

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue()'Déclarer les variablesDim LastRow aussi longtemps, FirstRow aussi longtempsDim Row aussi longtempsAvec ActiveSheet'Définir la première et la dernière lignePremière ligne = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Parcourir les lignes (de bas en haut)Pour la ligne = LastRow à FirstRow Étape -1Si .Range("A" & Row).Value = "insert" Then.Range("A" & Row).EntireRow.InsertFin siLigne suivanteTerminer parFin du sous-marin
wave wave wave wave wave