Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
myWobgho le blog des solutions simples!

Exporter d'Excel vers Powerpoint

2 Juillet 2013 Publié dans #Excel vers Powerpoint

Le problème:

Automatiser la mise à jour de présentation Powerpoint à partir de données d'une feuille de calcul Excel.

Par exemple, si on veut produire une présentation dans un format défini une fois pour toutes mais que l'on reconstruit tous les mois. Il est toujours fastidieux de "coller" au bon endroit les chiffres ou les graphiques.

Une solution:

On est là dans le domaine des macros. C'est même exactement leur rôle: reproduire des tâches répétitives. Sous Excel, il est possible d'enregistrer des macros et de se contenter de les rejouer ensuite. Malheureusement, cette fonctionnalité n'est pas proposée par Powerpoint et elle ne permet pas d'enregistrer le passage d'informations d'une application bureautique à une autre.

Il faut donc construire cette transmission entre outils "à la main". L'exemple ci dessous a pour principal objectif d'inclure un graphique dans une "diapo".

Graphique à copier

Graphique à copier

Diapo résultat

Diapo résultat

Le code VBA pour y arriver:

Sub ExporteVerPresModele()
'=============================================================
' myWobgho
'
' Exemple d'exportation depuis Excel vers Powerpoint
'
' Attention les bibliothèques Excel et Powerpoint
' (Outils Reference)
'
'=============================================================
Dim PptDoc As PowerPoint.Presentation
Dim Diapo As PowerPoint.Slide
Dim Sh As PowerPoint.Shape
Dim ShR As PowerPoint.ShapeRange
Dim Cs1 As ColorScheme
Dim NbShpe As Integer
Dim wPresname As String
Dim wDirPresname As String

Dim PptApp As Variant
Set PptApp = CreateObject("Powerpoint.Application")
wPresname = Worksheets("Parm").Range("B6")
' Fichier contenant une présentation "modèle" à compléter
' Son nom est présumé se trouver en cellule B6 de la feuille "Parm" dans Excel
wDirPresname = ActiveWorkbook.Path
' Répertoire où se trouve la feuille Excel, et aussi la présentation à compléter

wFullPresname = wDirPresname & "\" & wPresname
On Error GoTo ErrFic
Set PptDoc = PptApp.Presentations.Open(wFullPresname)

With PptDoc

' Ajoute une slide (jsute pour exemple)
wNbSlides = .Slides.Count + 1
.Slides.Add Index:=wNbSlides, Layout:=ppLayoutBlank

'Crée une zone de texte (AddLabel)
Set Sh = .Slides(wNbSlides).Shapes.AddLabel(Orientation:=msoTextOrientationHorizontal, _
Left:=100, Top:=100, Width:=150, Height:=60)

With Sh.TextFrame.TextRange
.Text = Worksheets("Parm").Range("A4")
' Ajout d'un texte lu dans la feuille excel
With .Font
.Name = "Times New Roman"
.Size = 30
.Bold = msoFalse
.Italic = msoFalse
.Underline = msoFalse
.Shadow = msoFalse
.Emboss = msoFalse
.BaselineOffset = 0
.AutoRotateNumbers = msoFalse
.Color = RGB(255, 100, 255)
.Color.SchemeColor = ppTitle
End With
End With

' Ajoute une autre slide où on va copier tableau et graphique
wNbSlides = .Slides.Count + 1
.Slides.Add Index:=wNbSlides, Layout:=ppLayoutBlank

' Copie du tableau de données
' Il est présumé se trouver dans l'onglet "Data" sous Excel
Worksheets("Data").Select
wBool = ActiveWindow.DisplayGridlines
If wBool Then
ActiveWindow.DisplayGridlines = False
End If
' Données en tableau dans le range spécifié
Worksheets("Data").Range("A3:B9").Copy
Set ShR = .Slides(wNbSlides).Shapes.PasteSpecial(ppPasteRTF, msoFalse)
With ShR
.Top = 90
.Left = 10
.Height = 150
End With

' Graphique présumé être dans "Graphique 2"
' Pour connaître le nom de l'objet Excel, il suffit d'enregistrer une macro
' où on sélectionne le graphique
Worksheets("Data").ChartObjects("Graphique 2").Activate
ActiveChart.ChartArea.Copy
' Les deux lignes ci dessus peuvent être direcetement recopiées de la macro enregistrée sous Excel
Set ShR = .Slides(wNbSlides).Shapes.PasteSpecial(ppPasteMetafilePicture, msoFalse)
With ShR
.Top = 90
.Left = 150
.Height = 250
End With

End With

ErrFic:
MsgBox "Le fichier " & wPresname & " n'exsite pas dans le répertoire"
Exit Sub
End Sub

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
M
The tips for exporting Excel to Powerpoint in such a fashion was really informative. You have a great knowledge to explain about this subject in an informative way for the readers. Your initiative is well appreciated and keep it up.
Répondre
Thanks. However, this blog platform is not really convenient. No easy way to interact. I'm using the android interface to reply. I may consider an English version but too much work and not no easy here.
M
Article intéressant pour l’intégration des graphiques excel directement dans powerpoint en VBA. J'ai aussi trouver un lien intéressant que je vous invite à visiter où une macro a été faite sur le même sujet : http://www.gcexcel.com/copier-des-graphiques-de-excel-vers-powerpoint/<br /> <br /> A très bientôt !
Répondre
Désolé de ne pas réagir. Le «nouvel» overblog n'est guère pratisue et c'est seulement la version android qui me permet, bien tard, de réagir