VBA (Excel) - Supprimer une ligne
Résolu
XRay
-
dlescot Messages postés 1 Statut Membre -
dlescot Messages postés 1 Statut Membre -
Hello !
J'aimerai savoir comment rechercher une valeur dans une colonne et supprimer la ligne correspondante...
Voila ce que j'ai fait :
En fait, je n'arrive pas à sélectionner la ligne entière pour la supprimer...
QQ'un a une soluce ?...
Merci d'avance ! ;o)
J'aimerai savoir comment rechercher une valeur dans une colonne et supprimer la ligne correspondante...
Voila ce que j'ai fait :
Range("A1").Select
Do While ActiveCell <> "toto"
ActiveCell.Offset(1, 0).Select
Loop
Selection.Delete Shift:=xlUp
En fait, je n'arrive pas à sélectionner la ligne entière pour la supprimer...
QQ'un a une soluce ?...
Merci d'avance ! ;o)
14 réponses
-
Et tout simplement un
Selection.EntireRow.Delete
Ca ne serait pas plus simple ?
Ou un peu plus complique, mais plus simple que ce qui a ete propose:Rows(Selection.Row).Delete shift:=xlUp
Mais je vis au moins deux problemes a ton code:- Si toto apparaît deux fois, il ne sera supprimer qu' une seule fois
- Si toto n’apparaît jamais, a la ligne 65536 tu vas avoir une erreur sur le offset.
Ne sachant pas combien de ligne tu as, tu pourrais mettre comme code:For i = Cells(1, 1).CurrentRegion.Rows.Count To 1 Step -1 If Cells(i, 1).Value = "toto" Then Cells(i, 1).EntireRow.Delete Next
en sachant que tu peux remplacer Cells(1, 1).CurrentRegion.Rows.Count par le nombre de lignes correspondant.-
-
-
-
Sub supprimer_lignes() ThisWorkbook.Worksheets("Feuil3").Activate j = 1 For i = 1 To Range("C65536").End(xlUp).Row 'calcule la dernière cellule remplie dans la colonne 3 colonne C If Cells(j, 3).Value = "pas de défaillance" Then Cells(j, 3).EntireRow.Delete Else j = j + 1 End If Next i MsgBox "Macro terminée" End Sub