IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA PowerPoint Discussion :

Macro Insertion Image depuis Excel [PPT-2010]


Sujet :

VBA PowerPoint

  1. #1
    Membre régulier
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Points : 80
    Points
    80
    Par défaut Macro Insertion Image depuis Excel
    bonjour à tous,

    j'avance (péniblement, mais bon) sur une macro excel qui génère un pptx, avec des données, et je veux également insérer l'image correspondant à ces données dans mon slide
    j'ai fait dans le pptx un tableau afin de recevoir chaque donnée dans des cellules et je veux dans la dernière ligne du tableau insérer une image
    mais je sèche sur la syntaxe à mettre :

    .Cell(2, 1).Shape.Pictures.Insert = Tablo(x, 4) 'chemin de la photo

    j'obtiens l'erreur 438 "propriété ou méthode non gérée par cet objet"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    With Sheets("sheet1")
        Tablo = Range("A2:D" & Range("A65000").End(xlUp).Row).Value
    End With
     
    Set objPPT = CreateObject("Powerpoint.Application")
    objPPT.Visible = True
     
    Set objPres = objPPT.Presentations.Open(ThisWorkbook.Path & "\note1.pptx")
    objPres.SaveAs ThisWorkbook.Path & "\test.ppt"
     
     
     
    For i = 1 To UBound(Tablo)
        If Tablo(i, 3) = 0 And Tablo(i, 4) = 0 Then
     
        Set objSld = objPres.Slides(1).Duplicate
        For Each objShp In objSld.Shapes
            If objShp.HasTable Then
                With objShp.Table
                    x = x + 1
                    .Cell(1, 1).Shape.TextFrame.TextRange.Text = Tablo(x, 1) 'nom
                    .Cell(1, 2).Shape.TextFrame.TextRange.Text = Tablo(x, 2) 'prénom
                    .Cell(1, 3).Shape.TextFrame.TextRange.Text = Tablo(x, 3) 'âge
                    .Cell(2, 1).Shape.Pictures.Insert = Tablo(x, 4) 'chemin de la photo
                End With
            End If
        Next
        End If
    Next
     
    objPres.Slides(1).Delete
    objPres.Save
    objPres.Close
     
    End Sub
    ma feuille est composée comme suit :
    col A = nom
    col B = prénom
    col C = âge
    col D = chemin de l'image

    quelqu'un a-t-il une piste pour résoudre ce problème ?
    d'avance merci !

  2. #2
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526

  3. #3
    Membre régulier
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Points : 80
    Points
    80
    Par défaut
    merci Arkham46,

    merci pour la piste, ça marche lorsque je mets le chemin complet de l'image :

    .Cell(2, 1).Shape.Fill.UserPicture ("F:\Devis 2011\images\image-1.jpg")

    mais si je veux lui mettre le chemin de l'image qui se trouve dans mon tableau à chaque ligne :

    .Cell(2, 1).Shape.Fill.UserPicture (Tablo(x, 4))

    dans la cellule D de mon tableau, à chaque ligne j'ai le lien vers l'image (chemin relatif : \images\image-1.jpg par exemple)

    j'ai l'erreur d'exécution : la méthode "UserPicture" de l'objet "FillFormat" a échoué

    je suppose qu'il y a une subtilité dans la syntaxe qui m'échappe !
    d'avance merci pour ton éclairage

  4. #4
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    si c'est un chemin relatif il faut concatener avec le chemin des images pour obtenir le chemin complet

  5. #5
    Membre régulier
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Points : 80
    Points
    80
    Par défaut
    merci, merci, merci !!!
    ça fonctionne parfaitement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insertion Image dans Excel
    Par Pascal Lob dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 15/09/2009, 20h26
  2. exporter des images depuis excel
    Par LiBasic dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 17/04/2008, 14h07
  3. [MySQL] Insertion Image depuis url en PHP
    Par Tillow dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/10/2007, 14h29
  4. [VBA-E] Macro Insertion image
    Par dafalri dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/05/2006, 17h20
  5. [VB6]Insertion image dans Excel
    Par mosquitout dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 12/04/2006, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo