Excel VBA : Boucle For Each, Do While

Fermé
polo_0109 - 29 avril 2010 à 14:11
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 29 avril 2010 à 14:27
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

Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 288
29 avril 2010 à 14:27
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