Automatisation VBA excel vers PPT

Fermé
Marielcx - Modifié le 9 mars 2023 à 09:52
hamariana Messages postés 5 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 10 mars 2023 - 10 mars 2023 à 10:07

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

A voir également:

1 réponse

hamariana Messages postés 5 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 10 mars 2023 1
10 mars 2023 à 10:07

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 !

0