Copier des données vers PowerPoint, Excel VBA
Voici un exemple détaillé de code VBA qui permet de copier des données d’Excel vers une présentation PowerPoint. Le code est divisé en plusieurs étapes, et chaque étape est commentée pour que vous puissiez facilement comprendre ce qu’il fait.
Objectif
Le code suivant copiera une plage de données d’Excel et l’ajoutera à une nouvelle diapositive PowerPoint sous forme de tableau.
Étapes à suivre
- Création d’un objet PowerPoint.
- Création d’une nouvelle présentation PowerPoint.
- Copie des données à partir d’Excel.
- Insertion des données copiées dans PowerPoint.
Code VBA
Sub CopierExcelVersPowerPoint() 
    ' Déclare les variables pour PowerPoint et Excel 
    Dim pptApp As Object 
    Dim pptPresentation As Object 
    Dim pptSlide As Object 
    Dim pptTable As Object 
    Dim excelRange As Range 
    Dim i As Integer, j As Integer 
    ' Sélectionner la plage de données à copier (par exemple A1:C10) 
    Set excelRange = ThisWorkbook.Sheets("Sheet1").Range("A1:C10") 
    ' Vérifier si PowerPoint est déjà ouvert, sinon l'ouvrir 
    On Error Resume Next 
    Set pptApp = GetObject(, "PowerPoint.Application") 
    If pptApp Is Nothing Then 
        Set pptApp = CreateObject("PowerPoint.Application") 
    End If 
    On Error GoTo 0 
    ' Rendre PowerPoint visible 
    pptApp.Visible = True 
    ' Créer une nouvelle présentation 
    Set pptPresentation = pptApp.Presentations.Add 
    ' Ajouter une nouvelle diapositive (par exemple, de type titre et contenu) 
    Set pptSlide = pptPresentation.Slides.Add(1, ppLayoutText) 
    ' Copier la plage d'Excel 
    excelRange.Copy      
    ' Coller la plage dans PowerPoint comme un tableau 
    pptSlide.Shapes.PasteSpecial DataType:=2 ' ppPasteEnhancedMetafile 
    ' Dimensionner et déplacer le tableau 
    With pptSlide.Shapes(pptSlide.Shapes.Count) 
        .LockAspectRatio = MsoTriState.msoFalse 
        .Left = 100 
        .Top = 100 
        .Width = 500 
        .Height = 300 
    End With 
End Sub
Explications du Code
1. Déclaration des objets PowerPoint et Excel :
- pptApp : Variable pour l’application PowerPoint.
- pptPresentation : Variable pour la présentation PowerPoint.
- pptSlide : Variable pour une diapositive de la présentation PowerPoint.
- pptTable : Variable pour la forme du tableau dans PowerPoint.
- excelRange : Plage de cellules Excel que vous souhaitez copier.
2. Création ou récupération de l’instance de PowerPoint :
- Le code tente d’abord de récupérer une instance en cours de PowerPoint avec GetObject. Si PowerPoint n’est pas déjà ouvert, le code crée une nouvelle instance avec CreateObject.
3. Création de la présentation et de la diapositive :
- Le code crée une nouvelle présentation PowerPoint avec pptApp.Presentations.Add.
- Une diapositive de type ppLayoutText (une diapositive avec titre et contenu) est ajoutée à la présentation.
4. Copie des données depuis Excel :
- La plage de données Excel, spécifiée par Range(« A1:C10 »), est copiée avec la méthode .Copy.
5. Collage dans PowerPoint :
- Les données copiées sont collées dans PowerPoint avec la méthode .PasteSpecial de PowerPoint. Le paramètre DataType:=2 signifie que le contenu est collé en tant qu’image améliorée (ppPasteEnhancedMetafile).
5. Mise en forme du tableau dans PowerPoint :
- Après avoir collé les données, le tableau est redimensionné et déplacé sur la diapositive. Le tableau est configuré pour ne pas verrouiller son ratio d’aspect (.LockAspectRatio = MsoTriState.msoFalse), puis les propriétés .Left, .Top, .Width, et .Height sont utilisées pour ajuster sa position et sa taille sur la diapositive.
Remarques
- Adaptabilité : Vous pouvez ajuster la plage de données copiée en modifiant la référence à la cellule Range(« A1:C10 »).
- Type de collage : Vous pouvez choisir un autre type de collage en modifiant la valeur de DataType dans .PasteSpecial. Par exemple, vous pouvez utiliser DataType:=1 pour un collage classique, ou DataType:=2 pour un collage en tant qu’image.
- Personnalisation : Vous pouvez personnaliser l’apparence de la diapositive, la taille de la table, ou d’autres éléments en fonction de vos besoins spécifiques.
Conclusion
Ce code permet de copier des données depuis une feuille Excel et de les insérer sous forme de tableau dans une présentation PowerPoint. Vous pouvez l’ajuster pour différentes tailles de plages de données ou pour d’autres types d’insertion en fonction de votre projet.
