Ajouter légende à shape

Bonjour,

depuis ma macro excel, je cherche à donner une légende à une image. J'ai trouvé plein de chose censée fonctionner mais j'ai un problème de variable.

Voici le bout de code en question

Set Image = appWord.ActiveDocument.Shapes.AddPicture(Filename:=CheminPhoto & NomPhoto, linktofile:=False, savewithdocument:=True)
                    With Image
                        .WrapFormat.Type = wdWrapTopBottom
                        .Left = wdShapeCenter
                        .LockAspectRatio = msoTrue
                        .Width = 300
                    End With

test = appWord.ActiveDocument.Shapes.Count
                    MsgBox ("Il y a " & test & " shapes")
                    'MsgBox VarType(Image)
                    appWord.ActiveDocument.Shapes(test).Select
                    MsgBox VarType(Selection)
                   ' Selection.Collapse Direction:=wdCollapseStart
                    Selection.InsertCaption Label:="Figure", _
                     Title:=": Sales Results", Position:=wdCaptionPositionBelow
                    

Quand je regarde vartype(Image), il s'agit d'un objet (je ne peux pas le déclarer en tant que shape, ça bugue, sans que je sache pourquoi)

Le test m'affiche bien 1 ! Si je mets .Delete à la place de .select, l'image se fait bien supprimer.

Pourtant, le vartype(selection) m'affiche 0,... c'est à dire vide ! Je ne comprends pas pourquoi.

Cela m'empêche de lui insérer une légende avec la suite du code.

Je vous remercie d'avance pour votre aide !

Pour affecter le shape word à un objet shape, il faut que tu le déclares par exemple : Dim shImage as Word.Shape

Si tu ne mets que "as Shape" c'est une Shape Excel.
Pour l'ajout de la légende, tu te trompes de propriété, regardes l'aide sur "Shape.CallOut (Word)" https://learn.microsoft.com/fr-fr/office/vba/api/word.shape.callout

Aaaaaaaah super ! Merci beaucoup, je n'ai plus d'erreur de type grâce à ta remarque pour Word.Shape

En revanche, j'ai toujours un souci avec la légende. Je cherche à coller sous la photo une petite légende.

à cause du msoCallOut, je me retrouve avec une flèche en direction de la photo.

Je bûche encore pour essayer de comprendre tout cela.

Merci encore

Je suis en train d'essayer avec addLabel. ça a l'air pas trop mal.

Il faudrait que j'arrive à grouper les 2, la photo avec le label pour bien faire

Tu as regardé du côté des constantes liées à CallOut https://learn.microsoft.com/fr-fr/office/vba/api/office.msocallouttype

Oui effectivement, j'ai bien regardé cette page (sans la comprendre probablement)

Je pensais que le One était celui qui m'intéressait mais ça n'a pas le rendu souhaité.

Je voudrais juste une ligne basique dessous la photo, sans segment

Re bonjour à tous

Je reviens vers vous, après avoir bûcher sur d'autres problèmes, je reviens sur ce programme que je n'arrive pas à finir. Mon but est d'obtenir quelque chose qui ressemble à l'image ci-dessous sur le document word que je crée avec une macro. Ensuite, je voudrais que la légende soit bien groupée avec l'image de façon à déplacer à la main les deux en même temps en cas de retouche de mise en page.

Je galère tellement !

Pour préciser là où j'en suis, je travaille avec des shapes et non des inlineshapes. Il y a un donc un habillage (qui n'est pas très bien respecté encore mais c'est encore un autre problème). J'ai essayé des Callout, Label etc... mais vraiment je bloque

Je vous remercie pour votre aide !!

legende
Rechercher des sujets similaires à "ajouter legende shape"