Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gestion des masques et VBA

12 réponses
Avatar
Jacques
Bonjour,

La charte graphique applicable à mes présentations a changé

J'ai vu que l'on pouvait avoir plusieurs masques de diapositives. J'ai donc
copié les masques de diapo du modèle diffusé dans mon entreprise dans ma
présentation et l'ai appliqué.

Après quelques ajustements, ca marche à peu près et je peux passer d'un
masque à un autre.

J'ai quand même quelques problèmes :

1/ Après plusieurs ouvertures/fermetures de ma présentation, l'ancien masque
avait disparu, aussi bien dans l'accès par Affichage/masque des diapositives
que dans la fenêtre "conception des diapositives". Je ne comprends pas
pourquoi

2/ Il y a plein de modèles dans la fenêtre "conception des diapositives"
(disponible) . Où sont-ils stockés sur le disque?

3/ Il m'est arrivé à 3 reprises qu'en passant de l'ancien modèle au nouveau,
je perde tout le formatage de la page de garde du nouveau (police en très
grand par exemple)

4/ La taille des polices de la page de garde dans l'ancien et le nouveau
modèle ne sont pas identiques. Comment régler cela? J'ai bien compris que
pour les diapositives elles-mêmes on définissait les styles par les retraits
et le titre de la 1ère page de masque mais pour la page de garde qui
correspond au masque de titre, comment fait-on? Je peux je peux résoudre le
problème en écrivant tout dans le masque de titre plutôt que dans la page de
garde mais est-ce le fonctionnement normal?

5/ Actuellement, j'accède en VBA au masque de diapositive pour modifier des
zones de texte par :

ActivePresentation.SlideMaster.Shapes("Bas_Page_Date").TextFrame.TextRange.Text
= Masque_Date
ActivePresentation.SlideMaster.Shapes("Bas_Page_Centre").TextFrame.TextRange.Text
= Titre_3

La modif ne se fait que sur le 1er masque - Si j'ai plusieurs masques,
comment faire la modif sur tous les masques , sachant que l'on retrouve les
mêmes noms de shapes sur mes 2 masques?

SlideMaster me permet d'accéder au masque de diapositive, Je pensai accéder
au masque de titre par TitleMaster mais ca ne marche pas :

ActivePresentation.TitleMaster.Shapes("Closing_Date").TextFrame.TextRange.Text
= Closing_Date


Merci pour votre aide

10 réponses

1 2
Avatar
Jacques
en fait
ActivePresentation.TitleMaster.Shapes("Closing_Date").TextFrame.TextRange.Text
= Closing_Date semble marcher mais je ne sais comment appliquer les modifs à
tous les masques


"Jacques" <none> a écrit dans le message de groupe de discussion :

Bonjour,

La charte graphique applicable à mes présentations a changé

J'ai vu que l'on pouvait avoir plusieurs masques de diapositives. J'ai donc
copié les masques de diapo du modèle diffusé dans mon entreprise dans ma
présentation et l'ai appliqué.

Après quelques ajustements, ca marche à peu près et je peux passer d'un
masque à un autre.

J'ai quand même quelques problèmes :

1/ Après plusieurs ouvertures/fermetures de ma présentation, l'ancien masque
avait disparu, aussi bien dans l'accès par Affichage/masque des diapositives
que dans la fenêtre "conception des diapositives". Je ne comprends pas
pourquoi

2/ Il y a plein de modèles dans la fenêtre "conception des diapositives"
(disponible) . Où sont-ils stockés sur le disque?

3/ Il m'est arrivé à 3 reprises qu'en passant de l'ancien modèle au nouveau,
je perde tout le formatage de la page de garde du nouveau (police en très
grand par exemple)

4/ La taille des polices de la page de garde dans l'ancien et le nouveau
modèle ne sont pas identiques. Comment régler cela? J'ai bien compris que
pour les diapositives elles-mêmes on définissait les styles par les retraits
et le titre de la 1ère page de masque mais pour la page de garde qui
correspond au masque de titre, comment fait-on? Je peux je peux résoudre le
problème en écrivant tout dans le masque de titre plutôt que dans la page de
garde mais est-ce le fonctionnement normal?

5/ Actuellement, j'accède en VBA au masque de diapositive pour modifier des
zones de texte par :

ActivePresentation.SlideMaster.Shapes("Bas_Page_Date").TextFrame.TextRange.Text
= Masque_Date
ActivePresentation.SlideMaster.Shapes("Bas_Page_Centre").TextFrame.TextRange.Text
= Titre_3

La modif ne se fait que sur le 1er masque - Si j'ai plusieurs masques,
comment faire la modif sur tous les masques , sachant que l'on retrouve les
mêmes noms de shapes sur mes 2 masques?

SlideMaster me permet d'accéder au masque de diapositive, Je pensai accéder
au masque de titre par TitleMaster mais ca ne marche pas :

ActivePresentation.TitleMaster.Shapes("Closing_Date").TextFrame.TextRange.Text
= Closing_Date


Merci pour votre aide
Avatar
Geo

en fait
ActivePresentation.TitleMaster.Shapes("Closing_Date").TextFrame.TextRange.Text
= Closing_Date semble marcher mais je ne sais comment appliquer les modifs à
tous les masques


J'ai un peu de mal à suivre, mais c'est la fin de semaine.
Une présentation n'a qu'un masque :
Activepresentation.slideMaster
et ses composants sont Activepresentation.SlideMaster.Shapes
Qui est une collection qu'il suffit de faire défiler.
Non ?

--
A+

Avatar
Geo
Re

Je ne connais pas grand chose à PowerPoint, j'essaie seulement de vous
répondre sur la partie VBA.

voici un bout de programme qui liste les différentes parties d'un diapo
maître.
Sub ListeMasque()
Dim F As Shape
For Each F In ActivePresentation.SlideMaster.Shapes
Debug.Print "Nom : " & F.Name
Debug.Print "Contenu : " & F.TextFrame.TextRange
Next F
End Sub

Vous voyez que l'une de ces formes est équivalente à
ActivePresentation.SlideMaster.Shapes.Title.TextFrame.TextRange



--
A+
Avatar
Jacques
dans le masque il y a en fait 2 slides : un masque de diapositives et un
masque de titre

"Geo" a écrit dans le message de groupe de discussion :


en fait
ActivePresentation.TitleMaster.Shapes("Closing_Date").TextFrame.TextRange.Text
= Closing_Date semble marcher mais je ne sais comment appliquer les modifs
à
tous les masques


J'ai un peu de mal à suivre, mais c'est la fin de semaine.
Une présentation n'a qu'un masque :
Activepresentation.slideMaster
et ses composants sont Activepresentation.SlideMaster.Shapes
Qui est une collection qu'il suffit de faire défiler.
Non ?

--
A+

Avatar
Jacques
slidemaster et titlemaster

"Geo" a écrit dans le message de groupe de discussion :


en fait
ActivePresentation.TitleMaster.Shapes("Closing_Date").TextFrame.TextRange.Text
= Closing_Date semble marcher mais je ne sais comment appliquer les modifs
à
tous les masques


J'ai un peu de mal à suivre, mais c'est la fin de semaine.
Une présentation n'a qu'un masque :
Activepresentation.slideMaster
et ses composants sont Activepresentation.SlideMaster.Shapes
Qui est une collection qu'il suffit de faire défiler.
Non ?

--
A+

Avatar
Circé
Bonjour Geo,

Geo a formulé ce samedi :

en fait
ActivePresentation.TitleMaster.Shapes("Closing_Date").TextFrame.TextRange.Text
= Closing_Date semble marcher mais je ne sais comment appliquer les modifs
à tous les masques


J'ai un peu de mal à suivre, mais c'est la fin de semaine.
Une présentation n'a qu'un masque :


Et pourtant les versions 2002 et 2003 peuvent effectivement comporter
plusieurs masques composés chacun d'un masque de diapo et d'un masque
de titre.
Ça ne se gère pas en VBA ?

Circé
http://faqword.free.fr

Activepresentation.slideMaster
et ses composants sont Activepresentation.SlideMaster.Shapes
Qui est une collection qu'il suffit de faire défiler.
Non ?



Avatar
Geo
Bonjour

Et pourtant les versions 2002 et 2003 peuvent effectivement comporter plusieurs masques
composés chacun d'un masque de diapo et d'un masque de titre.
Ça ne se gère pas en VBA ?


Si si, c'est quasiment pareil.
Quand on sait ce qu'on cherche on a des chances de la trouver.


Sub ListeMasqueTitre()
Dim i As Integer
Dim diapo As Master
Debug.Print ActivePresentation.TitleMaster.Shapes.Count
Set diapo = ActivePresentation.TitleMaster
For i = 1 To diapo.Shapes.Count
Debug.Print diapo.Shapes(i).Name, diapo.Shapes(i).Type
If diapo.Shapes(i).HasTextFrame Then
Debug.Print , diapo.Shapes(i).TextFrame.TextRange
End If
Next i

End Sub

--
A+

Avatar
Jacques
oui mais comme j'ai 2 masques dans ma présentation, et donc 2 TitleMaster et
2 SlideMaster, comment les distinguer?

Merci

"Geo" a écrit dans le message de groupe de discussion :

Bonjour

Et pourtant les versions 2002 et 2003 peuvent effectivement comporter
plusieurs masques
composés chacun d'un masque de diapo et d'un masque de titre.
Ça ne se gère pas en VBA ?


Si si, c'est quasiment pareil.
Quand on sait ce qu'on cherche on a des chances de la trouver.


Sub ListeMasqueTitre()
Dim i As Integer
Dim diapo As Master
Debug.Print ActivePresentation.TitleMaster.Shapes.Count
Set diapo = ActivePresentation.TitleMaster
For i = 1 To diapo.Shapes.Count
Debug.Print diapo.Shapes(i).Name, diapo.Shapes(i).Type
If diapo.Shapes(i).HasTextFrame Then
Debug.Print , diapo.Shapes(i).TextFrame.TextRange
End If
Next i

End Sub

--
A+

Avatar
Geo

oui mais comme j'ai 2 masques dans ma présentation, et donc 2 TitleMaster et
2 SlideMaster, comment les distinguer?


On peut avoir un TitleMaster pour une présentation, un SlideMaster,
un NotesMaster, un HandoutMaster.
Et aussi un Master par slide.

--
A+

Avatar
Jacques
j'ai 2 TitleMaster et 2 SlideMaster (4 slides "masque" donc) quand je vais
dans Affichage/Masque/masque des diapostives et seul la première paire
TitleMaster/SlideMaster est traitée par ma macro

ActivePresentation.TitleMaster.Shapes("Closing_Date").TextFrame.TextRange.Text
= Closing_Date
......
.......
ActivePresentation.SlideMaster.Shapes("Bas_Page_Date").TextFrame.TextRange.Text
= Masque_Date




"Geo" a écrit dans le message de groupe de discussion :


oui mais comme j'ai 2 masques dans ma présentation, et donc 2 TitleMaster
et
2 SlideMaster, comment les distinguer?


On peut avoir un TitleMaster pour une présentation, un SlideMaster,
un NotesMaster, un HandoutMaster.
Et aussi un Master par slide.

--
A+

1 2