Mise à jour de graphiques dans Powerpoint depuis Excel VBA
Bonjour à tous,
J'ai un classeur excel "test" qui contient deux graphiques sur l'onglet "graphiques" : "graphique 1" dont les données sont en A1:B5 de l'onglet "données" et "graphique 2" dont les données sont en E1:F5 sur l'onglet "données". J'ai également un Powerpoint "test" qui contient le graphique 1 en page 2 et le graphique 2 en page 3. Je souhaiterai mettre un Bouton sur mon classeur excel pour mettre à jour le Powerpoint mais je bloque... J'ai utilisé la macro proposé dans la FAQ mais je n'arrive pas à la faire marcher sur mon fichier.
Code:
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
Sub MAJ_graphiqueDansPresentation()
Dim appPPT As PowerPoint.Application
Dim Sh As PowerPoint.Shape
Dim Gr As Workbook
Set appPPT = CreateObject("PowerPoint.Application")
appPPT.Visible = msoTrue
appPPT.Presentations.Open "C:\Users\Administrateur\Desktop\test.pptx"
'Copie une plage de cellules dans la feuille active
'Ces données vont être collées dans le classeur incorporé, dans ppt, servant
'de source pour le graphique.
ActiveSheet.Range("A1:B5").Copy
'Le classeur incorporé est dans le 1er Slide
With appPPT.ActivePresentation.Slides(2)
'Boucle sur les formes pour retrouver l'objet Excel
For Each Sh In .Shapes
'Verifié s'il s'agit d'un objet incorporé
If Sh.Type = msoEmbeddedOLEObject Then
'Vérifie s'il s'agit d'une feuille graphique
If Sh.OLEFormat.progID = "Excel.Chart.8" Then
Set Gr = Sh.OLEFormat.Object
'Colle les données dans la Feuil1 du classeur incorporé
'La feuil1 contient la source de données pour le graphique
Gr.Sheets("Données").Range("A1").PasteSpecial
'réactive la première feuille du classeur incorporé
'(Le graphique est situé dans ce 1er onglet)
Gr.Sheets(1).Activate
End If
End If
Next Sh
End With
ActiveSheet.Range("E1:F5").Copy
'Le classeur incorporé est dans le 1er Slide
With appPPT.ActivePresentation.Slides(3)
'Boucle sur les formes pour retrouver l'objet Excel
For Each Sh In .Shapes
'Verifié s'il s'agit d'un objet incorporé
If Sh.Type = msoEmbeddedOLEObject Then
'Vérifie s'il s'agit d'une feuille graphique
If Sh.OLEFormat.progID = "Excel.Chart.8" Then
Set Gr = Sh.OLEFormat.Object
'Colle les données dans la Feuil1 du classeur incorporé
'La feuil1 contient la source de données pour le graphique
Gr.Sheets("Données").Range("E1").PasteSpecial
'réactive la première feuille du classeur incorporé
'(Le graphique est situé dans ce 1er onglet)
Gr.Sheets(1).Activate
End If
End If
Next Sh
End With
End Sub |
Quelqu'un pourrait-il m'aider ?
Merci par avance