Automatisation VBA excel vers PPT
hamariana Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je sollicite votre aide car je dois automatiser un fichier PPT en très peu de temps et je suis débutante sur le sujet.
Ma demande est la suivante : je dois créer un macro VBA afin que les onglets de mon fichier excel (texte + graphique) viennent se coller sur une maquette PPT.
Mon onglet 1 doit venir se coller dans la slide 1 PPT et ainsi de suite.
D'autre part, lorsque mon PPT est alimenté je souhaiterais qu'il soit enregistré sans écraser la maquette. Ex ma maquette s'appelle Exemple_PRESENTATION.PPTX et je souhaiterai que cela créé un nouveau PTT sous le nom Exemple_PRESENTATION_NOMDUPDV.PPTX
Merci pour votre aide :)
Marie
- Automatiser le passage de données d'excel vers powerpoint
- Powerpoint viewer - Télécharger - Présentation
- Liste déroulante excel - Guide
- Insérer video powerpoint - Guide
- Trier des données excel - Guide
- Word et excel gratuit - Guide
1 réponse
Bonjour,
Je fonctionnerais de cette manière :
Sub ExcelToPowerPoint()
Dim pptApp As PowerPoint.Application
Dim pptPres As PowerPoint.Presentation
Dim pptSlide As PowerPoint.Slide
Dim excelWB As Workbook
Dim excelWS As Worksheet
Dim shp As PowerPoint.Shape
'Ouvrir la présentation PowerPoint
Set pptApp = New PowerPoint.Application
Set pptPres = pptApp.Presentations.Open("C:\Chemin\Exemple_PRESENTATION.PPTX")
'Parcourir chaque onglet Excel
For Each excelWB In Application.Workbooks
For Each excelWS In excelWB.Worksheets
'Créer une nouvelle diapositive dans PowerPoint
Set pptSlide = pptPres.Slides.Add(pptPres.Slides.Count + 1, ppLayoutBlank)
'Coller le contenu de l'onglet Excel sur la diapositive PowerPoint
excelWS.UsedRange.Copy
pptSlide.Shapes.PasteSpecial DataType:=ppPasteDefault
'Ajuster la taille du contenu collé à la diapositive
Set shp = pptSlide.Shapes(pptSlide.Shapes.Count)
shp.Width = pptPres.PageSetup.SlideWidth
shp.Height = pptPres.PageSetup.SlideHeight
Next excelWS
Next excelWB
'Enregistrer la présentation sous un nouveau nom
pptPres.SaveAs "C:\Chemin\Exemple_PRESENTATION_NOMDUPDV.PPTX"
'Fermer la présentation et l'application PowerPoint
pptPres.Close
pptApp.Quit
Set pptSlide = Nothing
Set pptPres = Nothing
Set pptApp = Nothing
End Sub
Ce code ouvre la présentation PowerPoint "Exemple_PRESENTATION.PPTX" et parcourt chaque onglet Excel pour coller son contenu sur une nouvelle diapositive dans PowerPoint. Ensuite, il ajuste la taille du contenu collé pour qu'il convienne à la diapositive.
Enfin, il enregistre la présentation sous un nouveau nom "Exemple_PRESENTATION_NOMDUPDV.PPTX" et ferme la présentation et l'application PowerPoint.
N'oubliez pas de modifier le chemin d'accès du fichier PowerPoint dans la ligne Set pptPres = pptApp.Presentations.Open("C:\Chemin\Exemple_PRESENTATION.PPTX")
et de spécifier le chemin d'accès où vous souhaitez enregistrer la nouvelle présentation dans la ligne pptPres.SaveAs "C:\Chemin\Exemple_PRESENTATION_NOMDUPDV.PPTX"
.
J'espère que cela vous sera utile !