Comment copier ajouter des diapositives dans votre présentation PowerPoint avec les macros VBA ?

Dernière mise à jour : juin 2020

Applicable à : Office 2019 et versions antérieures. Windows seulement.

Voici une question d'un lecteur :

Dans le cadre de la présentation de mon rapport trimestriel à la direction, j'ai souvent besoin de copier plusieurs diapositives d'informations générales d'autres présentations. Ce n'est pas grave, mais ce serait une économie importante de pouvoir automatiser cet exercice. Toute aide de macro VBA pour accomplir cela est appréciée!

Comme vous venez de le mentionner, vous pouvez automatiser le copier-coller des diapositives dans PowerPoint à l'aide de Visual Basic pour Applications. Si vous avez besoin de créer plusieurs présentations chaque mois, cette automatisation de copie/importation de diapositives pourrait devenir un énorme gain de temps !

PowerPoint VBA pour ajouter des diapositives

Commençons par cet exercice simple.

Tout d'abord, assurez-vous que votre onglet de développement est activé et visible. Voici comment procéder .

Je suppose que vous avez déjà créé une présentation compatible avec les macros (le type de fichier est .pptm), que vous avez placée dans le même répertoire que votre présentation source (que j'appellerai source.pptm). Voici comment créer une présentation PowerPoint avec VBA .

Tout d'abord, prenons une sauvegarde de cette présentation (simple copie et sauvegarde).

Ensuite, insérons la macro suivante dans un nouveau module VBA dans votre présentation de destination. Tous les détails sur la façon de procéder peuvent être trouvés dans notre tutoriel PowerPoint VBA .

Voici le code VBA dont vous aurez besoin pour copier et coller automatiquement les diapositives.

Quelques hypothèses que j'ai faites:

  • Votre présentation source est nommée source.pptm
  •  Vous allez coller les diapositives 2 à 4 de votre présentation source
  • Vous allez placer les diapositives copiées à partir de la diapositive 5.

Sub InsertFromOtherPres()

' This short VBA macro copies slides from one presentation and inserts them into another

ActivePresentation.Slides.InsertFromFile FileName:="source.pptm", Index:=1, SlideStart:=2, 
SlideEnd:=4

End Sub

Évidemment, n'hésitez pas à modifier l'indexation des numéros de diapositives dans le code afin qu'elles correspondent à vos besoins.

Vous pouvez faire défiler plusieurs présentations en boucle et insérer des diapositives spécifiques de chacune dans votre rapport de gestion.

PowerPoint VBA pour dupliquer des diapositives

Au lieu de copier des diapositives dans une autre présentation, vous pouvez cloner une ou plusieurs diapositives de votre présentation :

Sub CopySlides()

' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly

ActivePresentation.Slides(3).Duplicate

End Sub

Ce n'étaient que quelques exemples simples d'automatisation de PowerPoint. Les lecteurs à la recherche de questions spécifiques, n'hésitez pas à envoyer une demande via la page Contact.

J'espère que ça aide 🙂

Conserver le formatage lors de la copie de diapositives

Le problème avec l’exemple précédent était que le formatage du thème des présentations originales n’était pas copié. Supposons que les 2 feuilles aient un formatage différent, voici ce qui se serait passé :

Exemple 1

 

Sub main()

Dim objPresentation As Presentation

Dim i As Integer

'open the target presentation

Set objPresentation = Presentations.Open("C:\2.pptx")

For i = 1 To objPresentation.Slides.Count

    objPresentation.Slides.Item(i).Copy

    Presentations.Item(1).Slides.Paste

Next i

objPresentation.Close

End Sub

Avant d'exécuter le code
Voici la présentation avec la diapositive que nous voulons copier : Résultat : Afin de résoudre ce problème, vous pouvez utiliser le code ci-dessous :
Diapositives à copier

Résultat

 

Sub Example2()

Dim objPresentation As Presentation

Dim i As Integer

'open the target presentation

Set objPresentation = Presentations.Open("C:\2.pptx")

For i = 1 To objPresentation.Slides.Count

    objPresentation.Slides.Item(i).Copy

    Presentations.Item(1).Slides.Paste

    Presentations.Item(1).Slides.Item(Presentations.Item(1).Slides.Count).Design = _

        objPresentation.Slides.Item(i).Design

Next i

objPresentation.Close

End Sub

En plus de copier la diapositive, le code ci-dessus copie le design. Si vous souhaitez le faire manuellement, vous copierez le slidemaster dans la nouvelle présentation. Vous ne pouvez pas copier le slidemaster à l'aide de VBA, mais vous pouvez définir la propriété de conception des diapositives.


Gingembre 2.7.53.0

Gingembre 2.7.53.0

Ginger est un vérificateur d'orthographe et de grammaire gratuit.

Blocs

Blocs

Blocks est un jeu intellectuel permettant aux élèves de 3e année du primaire de mettre en pratique leurs compétences de détection et de vision. Il est inclus par les enseignants dans le programme de soutien pédagogique en informatique.

Prezi 6.26

Prezi 6.26

Prezi est une application gratuite qui vous permet de créer des présentations numériques, en ligne et hors ligne.

Mathway

Mathway

Mathway est une application très utile qui peut t'aider à résoudre tous ces problèmes mathématiques qui nécessitent un outil plus complexe que la calculatrice intégrée de ton appareil.

Présentateur Adobe

Présentateur Adobe

Adobe Presenter est un logiciel d'apprentissage en ligne publié par Adobe Systems, disponible sur la plate-forme Microsoft Windows en tant que plug-in Microsoft PowerPoint.

Toucans 2.3.0

Toucans 2.3.0

Toucan est une plateforme technologique éducative. Il vous permet d'apprendre une nouvelle langue tout en parcourant des sites Web courants et quotidiens.

ENetViet 24.2

ENetViet 24.2

eNetViet est une application qui permet de connecter les parents avec l'école où étudient leurs enfants afin qu'ils puissent comprendre clairement la situation d'apprentissage actuelle de leur enfant.

Duolingo

Duolingo

Duolingo - Apprendre des langues gratuitement, ou simplement Duolingo, est un programme éducatif qui vous permet d'apprendre et de pratiquer de nombreuses langues différentes.

Typagerapide

Typagerapide

RapidTyping est un outil de formation au clavier pratique et facile à utiliser qui vous aidera à améliorer votre vitesse de frappe et à réduire les fautes d'orthographe. Avec des cours organisés pour de nombreux niveaux différents, RapidTyping vous apprendra à taper ou à améliorer les compétences existantes.

MathType 7.4.10.53

MathType 7.4.10.53

MathType est un logiciel d'équation interactif du développeur Design Science (Dessci), qui vous permet de créer et d'annoter des notations mathématiques pour le traitement de texte, les présentations, le eLearning, etc. Cet éditeur est également utilisé pour créer des documents TeX, LaTeX et MathML.