Sauter la ligne après qu'une condition if soit verifié

Bonjour

je voudrais écrire une macro qui me saute la ligne si une condition est vérifier

Sub saute()

Dim i As Integer
Dim DernLigne As Long

For i = 2 To DernLigne
    If Sheets("CT").Cells(i, 5).Value = "OUI" Then
    'sauter la ligne
    End If
Next i
End Sub

Suite sujet précédent : j'allais dire que ce n'est pas parce qu'un code fonctionne à un moment donné qu'il va toujours fonctionné, et ce n'est pas parce qu'il fonctionne que sa qualité est assurée. On ne peut se contenter du fait que ça fonctionne, il importe de toujours savoir précisément comment...

Mais je l'écris ici, parce que là je suis époustouflé par l'incohérence du code que tu fournis !

comment ça incohérence?

Je détaille :

1) i et DernLigne sont liés, i étant un compteur de boucle qui aura à prendre la valeur de DernLigne, borne maximale de la boucle.

Si DernLigne est Long, i doit également être Long ! Il est incohérent que ces deux variables liées aient un type de donnée différent qui génèrera une erreur lorsque la valeur 32768 sera atteinte.

2) Avant la boucle DernLigne doit être initialisée. Sans cela la boucle (de 2 à 0) ne démarrera pas !

3) La boucle et ton propos indiquent que si en colonne E il y a "OUI", tu ne veux pas exécuter l'action à accomplir dans le cas contraire. Il n'y a donc rien à "sauter". L'idée même en est incohérente ! Il n'y a seulement lieu de n'exécuter que sous condition, et donc d'inverser la condition, ce qui sera plus rationnel :

    If Sheets("CT").Cells(i, 5).Value <> "OUI" Then

et ainsi, si la valeur est "OUI", on ne fait rien et on passe à la ligne suivante !

merci

Rechercher des sujets similaires à "sauter ligne condition soit verifie"