Supprimer toutes les lignes du tableau suivant une valeur

Bonjour à tous

Je suis nouveau dans le forum et je me lance dans vba

je vous mets un code

Sub Supprime()

For Each cellule In Range("A1:F300")

If cellule.Value = "total" Then Rows(cellule.Row).Delete

Next

End Sub

ce code fonctionne mais il ne supprime qu'une seule ligneet comme "total est sur plusieurs cellule, je suis obligé de relancé ma macro de nombreuses fois

Si quelqu'un a la solution, je suis preneur

Merci

Bonjour thilico et

C'est ce qu'on appelle une erreur de débutant

Quand il s'agit de supprimer une ligne, il faut commencer par la fin, sinon la ligne 2 n'est plus la ligne 2 mais 1

Sub Supprime()
  Dim dLig as Long, Lig as Long
  ' Avec la feuille nommée
  With ThisWorkbook.Sheets("Toto")
    ' Trouver la dernière ligne remplie de la colonne A
    dLig = .Range("A" & Rows.count).End(XlUp).Row
    ' Pour chaque ligne en partant de la fin
    For Lig = dLig to 1 Step -1
      ' Si la cellule Ax contient le terme cehrché
      If  .Range("A" & lig).Value = "total" Then .Rows(Lig).Delete
    Next Lig
  End With
End Sub

A+

Edit 10/11 : oubli du End With

Bonjour,

Merci de m 'avoir répondu aussi vite.

Lorsque je lance la macro ,il me met "erreur de compilation end with attendu.

Situ peux voir ce quine vas pas ce serai sympa

Merci

bonjour BrunoM45, thilico,

il faut ajouter ce "End With" sur l'avant-dernière ligne

Sub Supprime()
     Dim dLig As Long, Lig As Long
     ' Avec la feuille nommée
     With ThisWorkbook.Sheets("Toto")
          ' Trouver la dernière ligne remplie de la colonne A
          dLig = .Range("A" & Rows.Count).End(xlUp).Row
          ' Pour chaque ligne en partant de la fin
          For Lig = dLig To 1 Step -1
               ' Si la cellule Ax contient le terme cehrché
               If .Range("A" & Lig).Value = "total" Then .Rows(Lig).Delete
          Next Lig
     End With    '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
End Sub

rebonjour

après avoir fait les modifs voila ce qu'il me met quand je fais f8 en la lançant pas a pas "With ThisWorkbook.Sheets("Toto")"

126001 654e45b5712b1467507145

merci d avance

Re,

Punaise sérieux

Si on vous met "Toto" c'est pour que vous changiez le nom de la feuille, ça ne vous semble pas logique

A+

bonsoir,

Merci de votre réponse mais j 'ai changé le nom de la feuille, je l'ai appeléToto, et pour ne pas me trompé j 'ai fait un copier coller.

Merci de votre comprehension

Si vous avez idée , je vous en remercie d avance

Re,

Sur quelle ligne avez-vous cette erreur

Remplacer le 1 de la boucle par

 For Lig = dLig to 2 Step -1

A+

Bonjour à tous

Après avoir fait les modifs voila ce que j ai, mis

Sub Supprime()
Dim dLig As Long, Lig As Long
' Avec la feuille nommée
With ThisWorkbook.Sheets("Toto")
' Trouver la dernière ligne remplie de la colonne A
dLig = .Range("A" & Rows.Count).End(xlUp).Row
' Pour chaque ligne en partant de la fin
For Lig = dLig To 2 Step -1
' Si la cellule Ax contient le terme cehrché
If .Range("A" & Lig).Value = "PRET MODULIMMO" Then .Rows(Lig).Delete
Next Lig
End With
End Sub

Edit modo : code à mettre entre balises avec le bouton </> merci d'y faire attention la prochaine fois

IL me met toujours le même message" erreur d'execution (9)

l indice n'appartient pas à la sélection

je vous joins un ptit fichier pour que vous puissiez y regarder

Merci

le PJ de 9:07, c'est la feuille "Feuil1" au lieu de "Toto", le PJ de 9:13 fonctionne sans erreur.

Bonjour,

Avec votre aide, je suis arrivé à un résultat satisfaisant, mais je vousdrais l'améliorer

Voici le code final:

Edit modo : merci de mettre le code entre balises
Oups j'ai supprimé le code, désolé

Je voudrais qu'il nr recherche que dans la plage de cellule a1:A100et pas dans toute la colonne A

Merci

Rechercher des sujets similaires à "supprimer toutes lignes tableau suivant valeur"