Urgent ! Aide sur les objets groupés sur Excel [Résolu]

Signaler
Messages postés
8
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
23 septembre 2007
-
Messages postés
8
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
23 septembre 2007
-
<?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

2 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Essaie ceci

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

MPi²
Messages postés
8
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
23 septembre 2007

Merci MPi t'es un chef.