Effacer plusieurs lignes selon condition

Résolu/Fermé
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 - 10 nov. 2015 à 16:45
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 10 nov. 2015 à 17:38
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

Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
10 nov. 2015 à 17:28
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
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 4
10 nov. 2015 à 17:35
ça fonctionne parfaitement! merci beaucoup
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
10 nov. 2015 à 17:38
De rien :)
0