VBA (Excel) - Supprimer une ligne

Résolu/Fermé
XRay - Modifié le 24 oct. 2018 à 09:36
dlescot Messages postés 1 Date d'inscription jeudi 23 juillet 2015 Statut Membre Dernière intervention 23 juillet 2015 - 23 juil. 2015 à 18:19
Hello !

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)
A voir également:

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.
73
vous êtes hyper fort !jhhhhhhhhhhhhhhhhhhhhhh
0
Merci Mangda
0
Annalord
J'ai un peu le même problème
J'ai copié des tutos sur le net avec open office mais je n'arrive pas a supprimer les lignes sans enlever le texte
Quelqu'un a peu être une astuce
Merci d'avance
0
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
0