Excel VBA : Boucle For Each, Do While

polo_0109 -  
Bidouilleu_R Messages postés 1209 Statut Membre -
Bonjour,

Après plusieurs heures de recherche et d'essais, je viens vous demander de l'aide. Je précise que je suis totalement débutant.

Voici le code en question :
Sub Essai()
Dim c As Variant
For Each c In Range("E3:EE3")
Do
c.Offset(1, 0).Interior.ColorIndex = 36
Loop While c.Value > -14
Next c
End Sub

Toutes les valeurs de la plage E3:EE3 sont supérieurs à -14 jusqu'à DT inclu. Donc les cellules E4:DT4 devraient normalement devenir jaunes.
Quand je lance la macro, seule la cellule E4 devient jaune puis le sablier de windows apparait et il ne se passe plus rien. Je suis alors obligé d'appuyer sur echap pour interrompre l'exécution.

Pourriez vous me dire si le code est correct et d'où vient le problème ?
Merci d'avance

2 réponses

  1. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    le do ....loop est inutile
    il vaut mieux faire un test if then

    Comme ça tu auras du jaune clair

    Sub Essai()
    Dim c As Variant
    For Each c In Range("E3:EE3")
        if c.value>14 then 
            c.Offset(1, 0).Interior.ColorIndex = 36
        end if
    Next c
    End Sub
    3