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:
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 :
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é :
Msgbox = Me.Shapes("Feu1").GroupItems("Rouge").Name
--> Fonctionne pas et retourne l'erreur 5
Msgbox = Me.Shapes("Feu1").GroupItems(3).Name
--> Fonctionne
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 :
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.
Partager