Il est de bon ton de se souhaiter la bonne année. Mais vous, et vous seul, pourrez faire en sorte que cette année soit bonne, meilleure que celle qui vient de s'écouler. Apprenez à ne compter que sur vous, car personne n'est plus qualifié que vous-même pour bâtir, réparer ou améliorer votre propre vie. Personne ne fera les choses à votre place. D'ailleurs, tout ce que les autres peuvent faire, c'est souhaiter que vous le fassiez. Et ne croyez pas que tout ceux qui vous entourent vous apporteront des solutions : certains font juste partie de vos problèmes. Transformez vos résolutions en actes, et dans douze mois, retournez-vous et souriez-vous fièrement : C'était long. C'était difficile. Mais ça y est : 2017 était une bonne année, merci Moi.

Piloter PowerPoint depuis un autre programme

ATTENTION : Programmeurs confirmés seulement !

Dans l'exemple de cette page, nous allons prendre le contrôle de PowerPoint depuis Excel à l'aide de VBA. Pour réaliser, tester et réussir ce programme, j'ai utilisé Windows XP en français, avec Office XP en Français (ce qui ne veut pas dire qu'il ne tourne pas sous d'autres configurations).

Il va s'agir de copier un graphique depuis une feuille Excel dans une présentation PowerPoint.

Pour faire fonctionner ce programme, il va falloiir que vous créez la configuration suivante sur votre machine :

  1. Créer un fichier Excel
  2. Dans ce fichier Excel, reproduisez le tableau suivant :
    Fruit Poids
    Banane 34
    Peche 54
    Abricot 65
  3. Créez un graphique tout simple dans la même feuille (La présentation n'a pas d'importance)
  4. Enregistrez votre fichier sous C:\Mes Documents\MonClasseur.xls
  5. Créez un diaporama Powerpoint composé d'une seule Diapositive vide
  6. Enregistrez le sous C:\Mes Documents\MaPresentation.ppt
  7. Quittez PowerPoint
  8. Revenez dans Excel
  9. Allez dans VBA (Raccourci Clavier : Alt F11)
  10. Menu Outils/Références : Cochez "Microsoft PowerPoint 10.0 Object Library" (10 = XP. Si vous travaillez avec 2000, c'est 9)
  11. Créez un nouveau Module

Dans le module, copiez la macro suivante :

Sub TestPowerPoint()
  ' On déclare une variable de type Application PowerPoint
  Dim ppt As PowerPoint.Application
  Set ppt = CreateObject("PowerPoint.Application")
  ppt.Visible = True ' Indispensable, sinon il ne peut pas ouvrir de fichier (Erreur)
  ' On crée maintenant un objet Presentation
  Dim Pres As PowerPoint.Presentation
  ' Et on lui dit de quelle présentation il s'agit :
  Set Pres = ppt.Presentations.Open(Filename:="C:\Mes Documents\MaPresentation.ppt")
  ' On active, sélectionne et copie le Graphique Graphique 1 de Excel :
  ActiveSheet.ChartObjects("Graphique 1").Activate
  ActiveChart.ChartArea.Select
  ActiveChart.ChartArea.Copy
  ' Et on le colle dans la première diapositive de la présentation :
  Pres.Slides(1).Shapes.Paste
  ' On enregistre la présentation PowerPoint :
  Pres.Save
  ' Et on quitte PowerPoint proprement :
  ppt.Quit
  Set ppt = Nothing
End Sub

Cette macro va :

Une fois que vous avez lancé la macro, pour voir si elle a fonctionné, il vous suffit d'ouvrir ensuite manuellement PowerPoint et MaPresentation.ppt