Bonjour à tous,

Dans mon désespoir, je fais appel à vous !

Voilà, je programme en vba excel 2002 SP3 des automations sur des formes automatiques.

En bref, j'ai dessiné un feu tricolores avec plusieurs rectangles nommés ("Rouge", "Jaune", "Vert").
A ce moment, j'ai réalisé le code pour allumer ou éteindre le feu en changeant les couleurs de mes rectangles comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Me.Shapes("Rouge").Fill.ForeColor.RGB = RGB(50, 0, 0)
Ce code fonctionne !!!

Pour simplifier la mise en page et structuré mon code j'ai voulu grouper ses formes en sous ensembles nommés "Feu1", "Feu2", etc...
Maintenant, je n'arrive plus à modifier les rectangles qui compose le groupe à partir de leurs noms.
J'ai essayé ce type de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Me.Shapes("Feu1").GroupItems("Rouge").Fill.ForeColor.RGB = RGB(50, 0, 0)
Erreur d'éxecution '5' : Argument ou appel de procédure incorrect !
Plusieurs essais que j'ai réalisé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Msgbox = Me.Shapes("Feu1").GroupItems("Rouge").Name
--> Fonctionne pas et retourne l'erreur 5
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Msgbox = Me.Shapes("Feu1").GroupItems(3).Name
--> Fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Msgbox = Me.Shapes("Feu1").GroupItems.Item("Rouge").Name
--> Fonctionne pas et retourne l'erreur 5

Est il possible de désigner le rectangle par son nom comme pour le feu ?
Je souhaite éviter ce type de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
     For i=1 to Me.Shapes("Feu1").GroupItems.Count
          If Me.Shapes.GroupItems(i).Name = "Rouge" Then '...
     Next
Je n'y comprend plus rien, ça doit être simple mais pourtant je n'y arrive pas !!!
J'ai grand besoin d'aide et je remercie par avance les personne pouvant me faire progresser.

Vincent.