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.