Incompatibilité de type

Bonjour à tous,

J'ai une erreur "incompatibilité de type" que je n'arrive pas à saisir. Concrètement, dans mon code vba depuis un fichier Excel, je suis en train d'ajouter une image jpg dans un doc word qui vient d'être créé.

Je mets ici le code simplifié de ce que je fais

Sub rapport()

    Dim DocWord As Word.Document
    Dim appWord As Word.Application

    Dim Image As Shape

    Set appWord = New Word.Application
    appWord.Visible = True
    Set DocWord = appWord.Documents.Add

                Photo = Dir(C:\Users\vivem\Desktop\Dossier\25.1.jpg)
                If Photo <> "" Then   'ligne qui permet de tester l'existence du fichier
                    Set Image = appWord.ActiveDocument.Shapes.AddPicture("C:\Users\vivem\Desktop\Dossier\25.1.jpg")

'suite du code inutile

Ce qu'il y a d'étonnant c'est qu'il insère bien l'image dans mon fichier, puis il m'affiche l'erreur sur la dernière ligne.

Avez-vous une idée pour me débloquer ?

Je vous remercie d'avance pour votre aide

bonsoir,

essaie ainsi

Dim Image As Object

Merci pour ta proposition.

Malheureusement, cela ne fonctionne pas !

J'ai essayé en enlevant le set image.

Il insère toujours la photo et me met toujours l'erreur

J'ai peut-être une piste. J'ai essayé de prendre un code tout fait sur learn microsoft.com, sur la page

Shapes.AddPicture, méthode (Word)

Dim shpCanvas As Shape

    Set appWord = New Word.Application
    appWord.Visible = True
    Set DocWord = appWord.Documents.Add

                Photo = Dir(CheminPhoto & NomPhoto)
                If Photo <> "" Then

                    Set shpCanvas = ActiveDocument.Shapes _
                    .AddCanvas(Left:=100, Top:=75, _
                    Width:=200, Height:=300)

                    'Add a graphic to the drawing canvas
                    shpCanvas.CanvasItems.AddPicture _
                    Filename:=CheminPhoto, _
                    LinkToFile:=False, SaveWithDocument:=True

Lorsque je lance ce code, il y a une erreur de compilation sur le "AddPicture", il me marque argument obligatoire. Il voudrait que je fasse AddPicture(CheminPhoto)

Est-ce un problème de version ?

Est-ce un problème d'objet de départ. Je ne dois peut-être pas partir de "ActiveDocument.Shapes"

bonjour,

ce code fonctionne chez moi, sans erreur.

Sub rapport()

    Dim DocWord As Word.Document
    Dim appWord As Word.Application

    Dim Image As Object

    Set appWord = New Word.Application
    appWord.Visible = True
    Set DocWord = appWord.Documents.Add

    Photo = Dir("d:\desktop\20211226_144459604_iOS.jpeg")
    If Photo <> "" Then   'ligne qui permet de tester l'existence du fichier
        Set Image = appWord.ActiveDocument.Shapes.AddPicture("d:\desktop\20211226_144459604_iOS.jpeg")
    End If
End Sub

Je suis vraiment trop désolé !!

J'ai passé à peu près 2H à faire des modifications par ci par là et à tester et retester, encore et encore. Sauf que j'ai fait une confusion dans le nom de la macro que j'utilisais. Je lançais une autre que celle que je modifiais.

Encore désolé de vous avoir fait perdre votre temps !

Ta première réponse était suffisante.

En mettant As Object à la place de As Shape ça fonctionne !

Merci pour tout et encore désolé

re

En mettant As Object à la place de As Shape ça fonctionne

Ceci dit, cela n'explique pas pourquoi "as Shape" n'est pas correct, car la documentation indique bien que la méthode .AddPicture renvoie bien un objet de type Shape.

C'est pas faux oui. Je ne comprends pas non plus

Rechercher des sujets similaires à "incompatibilite type"