Bonjour,
Oui, quelques problèmes dans ta syntaxe.
Tu déclares Sh de type Single et tu lui affectes un objet.
Revoir déclaration : As Object ou As Shape
Tu utilises des conditions If dans une instruction Select Case sans définir de Case.
Si tu n'as que 3 valeurs possibles, sous Select Case :
Case 0.5
Tu mets le résultat à obtenir dans ce cas, puis en dessous:
Case 1, 2.5 [oubien Case Is >= 1]
Et résultat dans ce cas.
Pas de If nécessaire.
Ta variable a n'ayant pas été initialisée dans la procédure, elle ne peut que renvoyer 0 (donc couleur du trait...?)
Si pour une couleur, c'est une donnée de type Long (mais ça n'a pas d'incidence...)
Il reste que tu est dans une boucle qui défile des formes à partir du numéro d'index. Donc tu dois agir sur la forme concernée selon le I auquel tu est rendu. Donc : Shapes(I)
Shapes("Up ") va probablement déclencher une erreur si ce n'est pas le nom d'une forme de la feuille !
Il te manque peut-être une condition pour tester si "Up" ou "Down". C'est peut-être sur ce point qu'un If dans les Case du Select Case devrait intervenir pour savoir si "Up" ou "Down".
Cordialement
Ferrand