Coller un graphique en mode image VBA

Bonjour

Je cherche à copier coller un graphique en mode image sur un ppt

ActiveSheet.ChartObjects(2).Copy
Diapo1.Shapes.Paste

J'ai essayé la fonction PasteSpecial DataType:=wdPasteBitmap mais elle me renvoie la même chose

Merci pour votre aide

Bonjour,

une autre possibilité en enregistrant le graph en image au format .jpg

    chemin = ThisWorkbook.Path & "\graph1.jpg"  ' adapter
    ActiveSheet.ChartObjects(1).Chart.Export Filename:=chemin, filtername:="JPG" ' enregistrer votre graphique en .jpg
    Set objImageBox = .Slides(1).Shapes.AddPicture(chemin, msoCTrue, msoCTrue, 10, 10, 200, 200)

j'oubiais, vous pouvez détruire le fichier .jpg après

Kill (chemin)

Cette méthode enregistre le graphe puis le détruit directement juste après ?

Cette méthode enregistre le graphe puis le détruit directement juste après ?

oui, cette méthode enregistre le graphe au format JPG,

Insert l'image dans le cadre d'image du ppt sur le Slides(1)

puis le détruit directement juste après.

Bonjour,

voici un exemple,

Sub Presentation_Graph()
'activer la référence à la bibliothèque Microsoft PowerPoint x.x Object Library
Dim PptApp As PowerPoint.Application
Dim PptDoc As PowerPoint.Presentation
Dim Sh As PowerPoint.Shape
Dim objImageBox As PowerPoint.Shape
Dim MyChart As Chart
Dim w As Double, h As Double

Set PptApp = CreateObject("Powerpoint.Application")
Set PptDoc = PptApp.Presentations.Add

With PptDoc
    'Ajoute un Slide
    .Slides.Add Index:=1, Layout:=ppLayoutBlank
'    '24,4cm en largeur et 14,28 en hauteur
    .PageSetup.SlideWidth = Application.CentimetersToPoints(24.5)
    .PageSetup.SlideHeight = Application.CentimetersToPoints(14.28)
     w = .PageSetup.SlideWidth ' largeur du Slide
     h = .PageSetup.SlideHeight  ' hauteur du Slide

    'Crée une zone de texte
    Set Sh = .Slides(1).Shapes.AddLabel(Orientation:=msoTextOrientationHorizontal, _
        Left:=l, Top:=100, Width:=150, Height:=60)
        Sh.TextFrame.TextRange.Text = "Présentation du graphique"
        Sh.TextFrame.TextRange.Font.Size = 20
        Sh.TextFrame.TextRange.Font.Name = "Helvetica 75 Bold"
        Sh.TextFrame2.TextRange.ParagraphFormat.Alignment = msoAlignCenter 'aligne le texte au centre du TB
        Sh.Left = (w / 2) - (Sh.Width / 2) 'aligne la zone de texte au centre de la diapo

    'insert le graph
    chemin = ThisWorkbook.Path & "\graph1.jpg"
    ActiveSheet.ChartObjects(1).Chart.Export Filename:=chemin, filtername:="JPG" ' enregistre le graphique en .jpg
    Set objImageBox = .Slides(1).Shapes.AddPicture(chemin, msoCTrue, msoCTrue, 10, 10, 200, 200)
    objImageBox.Left = (w / 2) - (objImageBox.Width / 2) 'aligne la graph au centre de la diapo
    objImageBox.Top = Sh.Top + Sh.Height + 10  'aligne le graph sous le textbox

    Kill (chemin) 'supprime le fichier image

End With
End Sub

edit: vous pouvez modifier ActiveSheet par Sheets("MaFeuil")

Merci infiniment pour ton aide sabV !

Merci pour ce retour, au plaisir!

ps/ Merci de clôturer le fil en cliquant sur le bouton V vert du post à coté du bouton EDITER si problème résolu.

Rechercher des sujets similaires à "coller graphique mode image vba"