Effacer plusieurs lignes selon condition

Résolu
lanetmel Messages postés 200 Date d'inscription   Statut Membre Dernière intervention   -  
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous

Merci à l'avance du temps que vous prendrez pour lire mon post. Je sais qu'il y en a beaucoup qui traite le sujet mais je n'y arrive pas.

Mon but est de supprimer les lignes qui contiennent une valeur(peu importe)dans la colonne L ET dans la colonne R la valeur "2015"

J'ai un code. Il fonctionne mais seulement une ligne à la fois, il faut que je le relance pour la ligne suivante..


Sub effacer()

Dim i As Long

For i = 2 To 10000
If Sheets("all").Cells(i, 12) <> "" And Sheets("all").Cells(i, 18) = "2015" Then
Rows(i).EntireRow.Delete

End If
Next i

End Sub


Quelqu'un a t'il une idée de ce qui manque à mon code? Présentement ça efface la ligne 20 mais pas la 21 qui aurait dû l'être aussi.. Je dois relancer pour que ça fasse la ligne suivante..

merci à l'avance

1 réponse

  1. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
     
    Bonjour,

    Parce que quand tu supprime des lignes, la valeur de i change (et oui, je me suis fait avoir plusieurs fois).

    Du coup :

    Sub effacer() 
    
    Dim i As Long
    
    For i = 10000 To 2 Step -1
    If Sheets("all").Cells(i, 12) <> "" And Sheets("all").Cells(i, 18) = "2015" Then
    Rows(i).EntireRow.Delete
    
    End If
    Next i
    
    End Sub


    Cordialement.
    1
    1. lanetmel Messages postés 200 Date d'inscription   Statut Membre Dernière intervention   4
       
      ça fonctionne parfaitement! merci beaucoup
      0
    2. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      De rien :)
      0