Ligne de Code VBA pour actualiser des données sous PPT
Bonjour,
Je me permet de vous écrire car j'ai besoin d'éclairages de personnes maitrisant VBA (que je ne maitrise absolument pas).
Dans le cadre de mon travail, j'ai des données à réactualiser sous ppt de manière récurrente, à partir d'excel.
J'ai bidouillé quelques trucs sous VBA. Mais mon souci est le suivant :
A partir du tableau excel, je dois actualiser la Feuille de données d'un Graph ppt.
Les données de la Feuille de données ppt ont été copiées avec liaison au fichier excel.
Mais au moment où la macro se termine les données ne réactualisent pas dans le ppt.
En faisant un tour sur ce forum, j'ai trouvé les lignes suivantes mais ça ne marche pas.
quelqu'un aurait une idée ?
Code:
1 2 3 4 5 6
| Set ppt = CreateObject("PowerPoint.Application")
ppt.Visible = True
Set Pres = ppt.Presentations.Open(Filename:="xxx")
Pres.UpdateLinks
Pres.Save
ppt.Quit |
Merci beaucoup de votre aide
Actualiser Présentation Powerpoint à partir d'Excel
Bonsoir,
Si je comprends bien, tu as un document Powerpoint dont les données sont liées à des données Excel.
Lorsque les données Excel changent, tu aimerais actualiser ton document Powerpoint par du code VBA, écrit dans ton classeur Excel.
Tu peux essayer le code VBA suivant que tu mets dans un module de ton classeur Excel :
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
| Sub Actual_pptx()
'Actualisation des graphiques dont les données sont issues d'un classeur Excel lié à la présentation Powerpoint
Dim Pwt As PowerPoint.Application
Dim Présen As PowerPoint.Presentation
Dim Chemin_Présentation As String
Dim dName As String
Dim Diapo As PowerPoint.Slide
Chemin_Présentation = ThisWorkbook.Path & "\Enquête de satisfaction.pptx"
Set Pwt = CreateObject("PowerPoint.Application")
Set Présen = Pwt.Presentations.Open(Chemin_Présentation, WithWindow:=msoFalse)
'ce dernier parametre WithWindow:=msoFalse permet de masquer Powerpoint pendant l'exécution du code
'Boucle sur les Slides de la présentation
For Each Diapo In Présen.Slides
dName = Diapo.Name 'nom du Slide
'actualisation du graphique par les données issues d'Excel
If Diapo.Shapes.Placeholders(1).PlaceholderFormat.Type = 7 Then
Diapo.Shapes.Placeholders(1).LinkFormat.Update
End If
If Diapo.Shapes.Placeholders(2).PlaceholderFormat.Type = 7 Then
Diapo.Shapes.Placeholders(2).LinkFormat.Update
End If
Next
'sauvegarde la nouvelle version de la présentation
Présen.Save
'ferme la présentation
Présen.Close
'ferme powerpoint
Pwt.Quit
End Sub |