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 :)
A voir également:
- Excel - Macro - Supprimer ligne si G = "NON"
- Supprimer rond bleu whatsapp - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Si ou excel - Guide
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
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
AstridG
Merci beaucoup je vais essayer ça!
Bonjour
autre méthode par récursivité..
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