Demande d'un utilisateur du forum : Déclencher l'affichage ou le masquage de l'objet et le garder affiché/masqué même en changeant de diapositive.
Principe
On place l'objet dans le masque de diapositive ou dans une disposition du masque afin qu'il soit visible sur toutes les diapositives désirées (ces diapositives devant bien évidemment utiliser ce masque ou cette disposition).
Les codes suivants sont à placer dans un module standard.
Code principal
Sub AfficherObjet(boAfficher As Boolean, strNomObjet As String, strNomDisposition As String)
' Code ne gérant qu'un jeu de masque
Dim masterSlide As Master
Dim layout As CustomLayout
Dim intIndiceDisposition As Integer
On Error GoTo erreur
Set masterSlide = ActivePresentation.Designs(1).SlideMaster
If strNomDisposition = "" Then
' Objet dans le masque
masterSlide.Shapes(strNomObjet).Visible = boAfficher
Else
' Objet dans une disposition
For Each objDisposition In masterSlide.CustomLayouts
If objDisposition.Name = strNomDisposition Then
intIndiceDisposition = objDisposition.Index
Exit For
End If
Next
If intIndiceDisposition = 0 Then
MsgBox "Disposition non trouvée", vbCritical, "Erreur sur le nom de la disposition"
Exit Sub
End If
masterSlide.CustomLayouts(intIndiceDisposition).Shapes(strNomObjet).Visible = boAfficher
'SlideShowWindows(1).View.GotoSlide SlideShowWindows(1).View.CurrentShowPosition 'Forcer rafraichisement
End If
Exit Sub
erreur:
MsgBox Err.Description & " (" & Err.Number & ")", vbCritical, "Erreur dans la procédure AfficherObjet"
End Sub
Codes de annexes
Codes servant pour identifier sur quel objet agir et quoi faire (Afficher ou Masquer).
Ici on a le code pour 2 objets (dupliquer la paire de procédures en les renommant pour plus d'objets).
' Objet 1
Sub AcAfficher_Click1()
AfficherObjet True, strNomObjet1, strNomDisposition1
End Sub
Sub AcMasquer_Click1()
AfficherObjet False, strNomObjet1, strNomDisposition1
End Sub
' Objet 2
Sub AcAfficher_Click2()
AfficherObjet True, strNomObjet2, strNomDisposition2
End Sub
Sub AcMasquer_Click2()
AfficherObjet False, strNomObjet2, strNomDisposition2
End Sub
Codes à personnaliser
A placer tout en haut du module (en 1ere position).
Créer autant de pair de constantes qu'il y a d'objets (ici 2 objets).
- La 1ere constante identifie l'objet à afficher/masquer.
> Utiliser le Volet de sélection pour récupérer le nom de l'objet voir de le renommer si nécessaire.
- La 2ème constante identifie l'emplacement de l'objet.
- Valeur vide "" si l'objet est dans le masque 1.
- Nom de la disposition si l'objet se trouve dans une des dispositions du masque 1.
> Clic droit sur la disposition puis Renommer la disposition pour copier ou renommer celle-ci.
' A personnaliser
' ===============
Const strNomObjet1 As String = "Ellipse 9" ' Remplacez par le nom de l'objet à afficher
Const strNomDisposition1 As String = "" ' Remplacez par le nom de la disposition où se trouve l'objet
' si l'objet est dans le masque principale saisir ""
Const strNomObjet2 As String = "Signe de multiplication 4"
Const strNomDisposition2 As String = "Vide"
Créer les boutons de commandes pour lancer le masquage d'un objet
Dessiner et formater les formes servant de bouton via les outils de dessins standard de Powerpoint.
Quelques exemples (à vous de faire preuve de créativité !)
Remarque :
> Pour enlever le remplissage de la forme (fond transparent), il ne faut pas choisir Aucun remplissage mais affecter une transparence à 100% à la couleur appliquée.
Affecter à ces objets un Action : Exécuter la macro et choisir la macro dans la liste déroulante.
Ruban Insertion > Action.
Recommencer cette manipulation pour chaque bouton.
Merci pour votre attention bienveillante.