<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
Comment gère t on les modifications sur les objets groupés. Exemple: une image avec deux "zone text"? Si je modifie le texte d'une des "zone text" comment je peut le voir par code?
Dans le code ci dessous, je scrute la feuille à activation et à la désactivation de celle ci, puis je compare pour voir les modifications.
'boucle sur les objets de la feuille
Public Function BoucleImagesFeuille(s_NomFeuille As String, i_Colonne As Integer) As Integer
Dim Obj As Shape
Dim i_Iteration As Integer
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Sheets("DonneesFeuille").Cells.Columns(i_Colonne).ClearContents
'Compte le nombre de formes dans la feuille
Sheets("DonneesFeuille").Cells(1, i_Colonne + 1).Value = Worksheets(s_NomFeuille).Shapes.Count
'Boucle sur les formes contenues dans la feuille
i_Iteration = 0
For Each Obj In Worksheets(s_NomFeuille).Shapes
i_Iteration = i_Iteration + 1
Sheets("DonneesFeuille").Cells(i_Iteration, i_Colonne).Value = Obj.Name
i_Iteration = i_Iteration + 1
Sheets("DonneesFeuille").Cells(i_Iteration, i_Colonne).Value = Obj.Height
i_Iteration = i_Iteration + 1
Sheets("DonneesFeuille").Cells(i_Iteration, i_Colonne).Value = Obj.Width
i_Iteration = i_Iteration + 1
Sheets("DonneesFeuille").Cells(i_Iteration, i_Colonne).Value = Obj.Top
i_Iteration = i_Iteration + 1
Sheets("DonneesFeuille").Cells(i_Iteration, i_Colonne).Value = Obj.Left
'là je sais que c'est un objet groupé mais je n'ai pas accès aux "zone text"
If InStr(Obj.Name, "Text Box") >= 1 Or InStr(Obj.Name, "Group") >= 1 Then
i_Iteration = i_Iteration + 1
Sheets("DonneesFeuille").Cells(i_Iteration, i_Colonne).Value = Obj.AlternativeText
End If
Application.ScreenUpdating = True
Next Obj
Application.ScreenUpdating = True
BoucleImagesFeuille = 1
End Function
Dim Obj As Shape, ItemsGroupe As Shape
'............début de code
If InStr(Obj.Name, "Group") >= 1 Then
For Each ItemsGroupe In Obj.GroupItems
i_Iteration = i_Iteration + 1
Sheets(s_NomFeuille).Cells(i_Iteration, i_Colonne).Value = _ ItemsGroupe.AlternativeText
Next
End If