Excel - Macro - Supprimer ligne si G = "NON"
AstridG
-
AstridG -
AstridG -
Bonjour à tous,
J'ai vu plusieurs discutions sur le sujet et la réponse à l'air évidente, mais je ne trouve pour autant pas la solution à mon problème...
J'ai crée un fichier excel et je voudrait supprimer toutes les lignes dont la colonnes G= "NON", je n'arrive pas à programmer la macro... Pouvez vous m'aider ?
En vous remerciant par avance :)
J'ai vu plusieurs discutions sur le sujet et la réponse à l'air évidente, mais je ne trouve pour autant pas la solution à mon problème...
J'ai crée un fichier excel et je voudrait supprimer toutes les lignes dont la colonnes G= "NON", je n'arrive pas à programmer la macro... Pouvez vous m'aider ?
En vous remerciant par avance :)
2 réponses
-
Bonjour,
Sub Supp_lig_NON_G() Dim Col_G As Range Dim NL As Long, Derlig As Long, lig As Long, NBre As Long Dim Mot As String On Error GoTo fin Application.ScreenUpdating = False With Worksheets("feuil1") 'nom de feuille a adapter Derlig = .Columns("G").Find("*", , , , , xlPrevious).Row 'derniere cellule non vide colonne G Mot = "NON" 'Definition Plage de cellule pour recherche occurences dans SubRoutine reporter Set Col_G = .Range("G1:G" & Derlig) 'nombre d'occurence NBre = Application.CountIf(Col_G, Mot) If NBre > 0 Then 'si au moins 1 'boucle de recherche For NL = 1 To NBre lig = 1 'lookat:=xlWhole valeur exacte 'lookat:=xlPart valeur contenue dans la cellule, ou la feuille par défaut lig = .Columns("G").Find(Mot, .Cells(lig, "G"), , lookat:=xlWhole).Row 'Effacement ligne .Rows(lig).Delete Next NL End If End With Set Col_G = Nothing fin: Application.ScreenUpdating = True End Sub -
Bonjour
autre méthode par récursivité..
Option Explicit
'-------------
Sub vvv()
Dim Mot As String, Lig As Long
Application.ScreenUpdating = False
On Error GoTo fin
Mot = "NON"
Lig = Columns("G").Find(what:=Mot, lookat:=xlWhole).Row
Rows(Lig).Delete
Call vvv
fin:
MsgBox "suppression du mot " & "Mot" & " terminée"
End Sub