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
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 lignepptPres.SaveAs "C:\Chemin\Exemple_PRESENTATION_NOMDUPDV.PPTX".J'espère que cela vous sera utile !