Bonjour,

j'ai de nombreux fichiers vsd. chacun composé de plusieurs pages. Et sur chaque page des groupes de formes et des formes de couleur noir ou verte RGB (0,255,0).
J'ai besoins de changer la couleurs de tous les objets ( shapes) vert en noir.

j'ai tenté de tester la couleur verte des shapes de chaque page et de la mettre en noire . Cela fonctionne sur une partie des shapes. Mais, pas sur les groupes de shape. Pour acceder aux shapes d'un groupe j'ai essayé plusiieurs solutions: shape.ItemFromID(n).shape.ItemFromID(i), boucle for each .
Seulement tout les shape ne sont pas des groupes. Mon script est en erreur lorsque je tente d'acceder a un sous shape qui n'existe pas.

Il y a t-il moyen de savoir si un shape est un groupe ?
Ou, si non, il y a t-il moyen de gerer les erreurs d’accès a un sous shape qui n’existe pas ?

Ou tout autre idée solutionnant mon problème.

J'ai pris un exemple sur la page 4 d'un document
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Set MaPage = Application.ActiveDocument.Pages(4)
For Each MonObjet In MaPage.shapes
For Each MonObjet2 In MonObjet.Shapes
 
If UCase(MonObjet2.Cells("LineColor").Formula) = UCase("THEMEGUARD(RGB(0;255;0))") Then
        MonObjet2.Cells("LineColor").Formula = "RGB(0;0;0)"
End If
Next MonObjet2
If UCase(MonObjet.Cells("LineColor").Formula) = UCase("THEMEGUARD(RGB(0;255;0))") Then
        MonObjet.Cells("LineColor").Formula = "RGB(0;0;0)"
End If
Next MonObjet