Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Déclencher une présentation PowerPoint
Grâce aux développements des volets précédents, nous avons appris Ã
piloter des instances de Word et d'Excel. Dans les pas de ces solutions, nous proposons maintenant d'apprendre Ã
piloter une instance de PowerPoint par le
code VBA Access.
Sur l'exemple illustré par la capture, l'utilisateur consulte les noms et titres de
présentations PowerPoint depuis un
formulaire tabulaire. S'il clique sur l'une de ces lignes et qu'il clique ensuite sur le
bouton Ouvrir, la présentation sélectionnée s'affiche dans
PowerPoint. Et s'il coche la
case Mode Diaporama en amont, la
lecture automatique est enclenchée à l'
ouverture de la présentation.
Base de données Access à télécharger
Pour développer cette solution, nous suggérons d'appuyer l'étude sur une
base de données Access offrant déjà ce
formulaire.
Comme vous le constatez, la décompression fournit le
fichier de la base de données, accompagné d'un
sous dossier intitulé
sources. Il héberge des
présentations PowerPoint. Les noms de ces fichiers sont archivés dans la
base de données.
- Double cliquer sur le fichier de la base de données pour l'ouvrir dans Access,
- Cliquer sur le bouton Activer le contenu du bandeau de sécurité,
- Dans le volet de navigation sur la gauche, double cliquer sur le formulaire fFichiers,
Ainsi, nous l'exécutons. Quelques titres sont effectivement énumérés avec les
noms de fichiers respectifs en troisième colonne. C'est aux clics sur l'une de ces lignes puis sur le
bouton Ouvrir que l'
ouverture de la présentation correspondante doit être engagée dans
PowerPoint. Certes la ligne choisie n'est pas mise en évidence mais nous avions appris Ã
colorier l'enregistrement sélectionné à l'occasion d'une
astuce Access. Ici, nous filons droit au but.
La procédure et les variables
Pour débuter, nous devons commencer par créer la
procédure de code à attacher
au clic sur le bouton Ouvrir. Elle doit se charger de
piloter une instance de PowerPoint pour
ouvrir le fichier désigné. Donc, nous avons besoin d'une
variable pour l'
instance et d'une autre pour construire le
chemin d'accès local à ce fichier.
- A gauche du ruban Accueil, cliquer sur la flèche du bouton Affichage,
- Dans les propositions, choisir le mode Création,
- Sur le formulaire en conception, cliquer sur le bouton Ouvrir pour le sélectionner,
- Dès lors, activer l'onglet Evénement de sa feuille de propriétés,
- Cliquer sur le petit bouton associé à son événement Au clic,
- Dans la boîte de dialogue qui suit, choisir le générateur de code et valider par Ok,
De fait, nous basculons dans l'
éditeur VBA Access entre les bornes de la
procédure événementielle ouvrir_Click.
- Dans les bornes de cette procédure, ajouter les deux déclarations de variables suivantes :
Private Sub ouvrir_Click()
Dim instanceP As Object: Dim nomFichier As String
End Sub
Nous déclarons la
variable instanceP comme un
objet au sens large (Object). Elle prendra son type lorsque nous
instancierons la classe PowerPoint. Plus classiquement, nous déclarons la
variable nomFichier comme un
texte (String). Son rôle est de mémoriser le
chemin d'accès complet au fichier PowerPoint cliqué sur le formulaire.
Instancier la classe PowerPoint
Maintenant que ces deux variables existent, nous devons les initialiser. Concernant l'
instance de PowerPoint, nous allons encore une fois exploiter la
fonction VBA CreateObject avec un paramètre spécifique, pour faire référence à la librairie souhaitée.
- Après la déclaration des variables, ajouter les deux instructions VBA suivantes :
...
nomFichier = CurrentProject.Path & "\sources\" & Me.fichier_nom
Set instanceP = CreateObject("PowerPoint.Application")
...
Nous exploitons tout d'abord la
propriété Path de l'
objet VBA Access CurrentProject. Elle renvoie le
chemin d'accès à l'
application locale. Par concaténation (&), nous lui associons le
sous dossier des présentations (\sources\) pour enfin pouvoir désigner le
nom du fichier à ouvrir dans
PowerPoint.
Me désigne l'objet actif au moment de la demande, soit le
formulaire.
fichier_nom est le nom de la zone de texte hébergeant le nom du fichier cliqué. En effet, sur un
formulaire tabulaire, ce sont les contrôles de la ligne cliquée qui sont considérés comme actifs. Et c'est ainsi que nous récupérons le choix de l'utilisateur. Ensuite, c'est le
paramètre PowerPoint.Application passé à la
fonction CreateObject qui permet d'
instancier la classe de PowerPoint. De fait, l'
objet instanceP ainsi initialisé (Set), hérite des propriétés et méthodes pour piloter cette
nouvelle instance de PowerPoint.
Ouvrir le fichier PowerPoint
Maintenant que l'
objet instanceP est initialisé, nous allons pouvoir exploiter ses facultés pour ouvrir la
présentation du fichier cliqué par l'utilisateur sur le
formulaire Access.
- A la suite du code, ajouter les deux instructions VBA suivantes :
...
instanceP.Visible = True
instanceP.Presentations.Open (nomFichier)
...
En réglant la
propriété Visible de cette nouvelle instance Ã
True, contrairement aux développements précédents en tâches de fond, nous indiquons que la
fenêtre de PowerPoint doit s'afficher à l'écran. C'est alors la
méthode Open de sa
collection Presentations qui permet de désigner en paramètre, le
fichier PowerPoint à ouvrir.
Jouer le diaporama en VBA Access
Un dernier détail reste à régler dans ce
code VBA fort simple. Si l'utilisateur coche la case à côté du bouton, le
fichier PowerPoint doit automatiquement s'exécuter à l'ouverture pour
lancer le diaporama. Cette case porte le
nom d'objet diapo.
- A la suite du code, ajouter l'instruction VBA suivante :
...
If diapo.Value = -1 Then instanceP.ActivePresentation.SlideShowSettings.Run
...
Si la case est bien cochée (-1), nous exploitons la
méthode Run de la
propriété SlideShowSettings de l'
objet ActivePresentation pour l'
instance de PowerPoint. Cette
propriété SlideShowSettings représente les
paramètres du diaporama. Avec sa
méthode Run, nous lançons la
lecture à distance par le
code VBA Access.
Lancer une présentation PowerPoint
Nous en avons déjà terminé avec le développement de ce
code VBA. Il ne nous reste plus qu'Ã le tester.
- Enregistrer les modifications (CTRL + S) et revenir sur le formulaire Access (ALT + Tab),
- L'exécuter par exemple avec la touche F5 du clavier,
- Cliquer sur la ligne de l'une des présentations, par exemple la deuxième,
- Puis, cliquer sur le bouton Ouvrir, en haut du formulaire,
Comme vous pouvez l'apprécier, la présentation correspondante s'ouvre aussitôt dans
PowerPoint.
- Fermer PowerPoint en cliquant sur la croix de sa fenêtre,
- Cliquer maintenant sur la ligne du dernier fichier, la septième,
- A côté du bouton Ouvrir, cocher la case Mode diaporama,
- Puis, cliquer sur le bouton Ouvrir,
Cette fois, c'est la
lecture automatique de la
présentation PowerPoint qui est commandée à distance par le
code VBA Access.
Le
code VBA Access pour réaliser cette prouesse reste d'une simplicité déconcertante :
Private Sub ouvrir_Click()
Dim instanceP As Object: Dim nomFichier As String
nomFichier = CurrentProject.Path & "\sources\" & Me.fichier_nom
Set instanceP = CreateObject("PowerPoint.Application")
instanceP.Visible = True
instanceP.Presentations.Open (nomFichier)
If diapo.Value = -1 Then instanceP.ActivePresentation.SlideShowSettings.Run
End Sub