Automatisation VBA excel vers PPT

Marielcx -  
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

  1. hamariana Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
     

    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