VBA exporter tableur et graphique dans powerpoint

Bonjour à tous,

je fais appel à vos connaissances car j'aimerais exporter directement un tableau et deux graphiques dans un fichier powerpoint.

  • L'idée sera d'insérer 2 diapos dans un ppt qui ne contient qu'une page de garde
  • copier le tableau excel (B1: J16)
  • coller ce tableau dans la diapo 2 du ppt au format image au centre de la diapo
  • Copier le graphique histogramme puis coller dans la diapo 3 du ppt au format image
  • Copier le graphique camembert puis coller dans la diapo 3 du ppt au format image

J'ai essayé d'expliquer les différentes étapes qui devraient arriver à solutionner mon problème mais je n'ai aucune connaissance pour réaliser ces étapes avec VBA

Si quelqu'un a une idée, je suis preneur d'une solution.

Merci d'avance pour votre aide précieuse !

Mav'

86tableur-excel.xlsx (144.84 Ko)

bonjour

dans PP, menu Insérer Objet devrait suffire, sans VBA

amitiés

Bonjour jmd et merci pour la réponse rapide.

Effectivement il est très simple d'ajouter un objet ou même de copier coller un graphique mais l'idée serait d'automatiser la tâche :

J'ai fait en parallèle un fichier vba très simple (à mon niveau) qui fait varier les inputs d'une simulation.

le tableau et les deux graphiques sont les résultats de cette simulation.

A terme, j'aimerais pouvoir faire une dizaine de scénarios (boucle For i de 1 à10)

et pour éviter d'insèrer plein de graph et tableaux, je pensais vous solliciter pour automatiser cette tâche.

Je voulais donc insérer la partie VBA dédiée à l'export vers ppt dans ma boucle FOR afin de créer 2 nouvelles diapos pour chaque scénario et de coller a chaque fois les graph et tableaux.

Je ne sais pas si j'ai été explicite et je ne sais pas seulement si c'est faisable avec vba ?

Merci d'avance pour votre aide !

Maverick

re

ahhhhhh !

il te faut alors Power BI Desktop gratuit !

le roi des présentations et simulations basées sur des paramètres

https://guyinacube.com/2017/05/dynamic-power-bi-reports-using-parameters/

voir les tutos sur le web

amitiés

Merci pour le retour.

Vais je pouvoir solutionner mon probleme avec Power BI.

à savoir extraire les graphiques à chaque changement d'input ? Power BI s'intégrera dans mon code actuel pour faire l'étape 4) ci dessous ?

Pour l'instant mon excel :

1 ) change la valeur d'input

2) actualise les TCD du fichiers

3) trace les tableaux et graph en fonction des résultats des TCD

J'aimerais ajouter les fonctions

4) exporte les graphiques pour chaque valeur testée dans un powerpoint

Sub scenario()
    For i = 1 To 5
        Sheets("pvsyst").Range("B3") = Sheets("comparaison sce").Cells(2, 4 + i)
        Sheets("batterie").Range("B9") = Sheets("comparaison sce").Cells(3, 4 + i)
        Sheets("batterie").Range("B11") = Sheets("comparaison sce").Cells(4, 4 + i)
        Sheets("batterie").Range("B5") = Sheets("comparaison sce").Cells(5, 4 + i)
        Sheets("batterie").Range("B7") = Sheets("comparaison sce").Cells(6, 4 + i)
        ActiveWorkbook.RefreshAll
        Sheets("comparaison sce").Cells(7, 4 + i) = Sheets("bilan recap").Range("C100")
        Sheets("comparaison sce").Cells(8, 4 + i) = Sheets("bilan recap").Range("C101")
        Sheets("comparaison sce").Cells(9, 4 + i) = Sheets("bilan recap").Range("F49")
        Sheets("comparaison sce").Cells(10, 4 + i) = Sheets("batterie").Range("J7")
        Sheets("comparaison sce").Cells(11, 4 + i) = Sheets("batterie").Range("J9")

        ' copier coller le tableau de la feuille "bilan recap" sur la slide (2i) d'un power point  au format image
        ' copier coller le graphique de la feuille "bilan recap" sur la slide (2i+1) d'un power point  au format image

    Next i

End Sub

Il me reste à faire les deux dernières lignes en commentaires qui correspondent à l'export sur un ppt des graphiques et tableaux

Si quelqu'un peut me m'aider dans cet exercice, ce serait vraiment un sauveur pour moi

Merci d'avance

Rebonjour , j'ai réussi en trouvant des morceaux de codes sur l'internet.

Le seul problème concerne l'affichage.

la partie E2:G5 devrait se situer tout en haut de la diapositive mais celle-ci se superpose avec l'autre tableau copié (B10:I25)

Une solution pour m'aider à avancer svp ?

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
    .Slides.Add Index:=2, 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

    Sheets("bilan recap").Activate
    chemin = ThisWorkbook.Path & "\graphique2.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, 50, 450, 200)
    objImageBox.Left = 10 '(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

    chemin = ThisWorkbook.Path & "\graphique3.jpg"
    ActiveSheet.ChartObjects(2).Chart.Export Filename:=chemin, filtername:="JPG" ' enregistre le graphique en .jpg
    Set objImageBox = .Slides(1).Shapes.AddPicture(chemin, msoCTrue, msoCTrue, 10, 50, 200, 200)
    objImageBox.Left = 470
    'objImageBox.Top = Sh.Top + Sh.Height + 10  'aligne le graph sous le textbox

    ActiveSheet.Range("B10:I25").Copy
    .Slides(2).Shapes.PasteSpecial DataType:=2

    ActiveSheet.Range("E2:G5").Copy
    .Slides(2).Shapes.PasteSpecial DataType:=2

End With

     Kill (chemin) 'supprime le fichier image

End Sub

Merci pour le retour.

Vais je pouvoir solutionner mon probleme avec Power BI.

à savoir extraire les graphiques à chaque changement d'input ? Power BI s'intégrera dans mon code actuel pour faire l'étape 4) ci dessous ?

re

PBI ira lire tes données, et faire des présentations

tu pourras y modifier des paramètres pour tes simulations

tu pourras faire des pdf (ctl+F)

tu pourras mettre ton PBI sur le cloud (payant, pas cher), bien mieux que PPT car il reste interactif concernant la modification des paramètres.

mais je te déconseille de tenter de "remettre" dans Excel ou dans PPT (ou alors il y a une méthode que je ne connais pas)

amitiés

Merci pour tes réponses.

Je vais ouvrir un nouveau post car mon problème a légèrement changé.

J'ai réussi à faire mon export sur PowerPoint comme désiré mais l'emplacement du tableau est au centre...

Je regarde avec attention PBI afin d'en apprendre plus sur cet outils qui m'a l'air très complet d'apres mes premières recherches

Merci JMD pour ton temps,

A+

Mav

Rechercher des sujets similaires à "vba exporter tableur graphique powerpoint"