[VBA POWERPOINT] CRÉER UN SOMMAIRE AUTOMATIQUE

johnvlesk Messages postés 11 Date d'inscription jeudi 16 novembre 2006 Statut Membre Dernière intervention 25 mai 2011 - 5 mai 2011 à 10:28
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 - 5 mai 2011 à 10:41
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/53114-vba-powerpoint-creer-un-sommaire-automatique

Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
5 mai 2011 à 10:41
Merci de ta contribution john
johnvlesk Messages postés 11 Date d'inscription jeudi 16 novembre 2006 Statut Membre Dernière intervention 25 mai 2011
5 mai 2011 à 10:28
Hello, Sympa le code.

Ce qui pourrait être cool c'est de générer automatiquement des liens hypertextes sur les entrées de la TDM en indiquant le numéro de slide.

Un truc dans ce goût là.

CODE [

Public Sub AjouterSommaireAutomatique()
Dim Diapo As Slide
Dim txtSommaire As TextRange
Dim y As Long

' crée un sommaire automatique
' ajoute une diapo en 2è position de présentation avec
'la disposition de mise en forme n°2 du masque

' ajout d'une slide au début
ActivePresentation.Slides.Add Index:=2, Layout:=ppLayoutText
' ajout d'un titre à la slide ajoutée
ActivePresentation.Slides(2).Shapes(1).TextFrame.TextRange = "Sommaire"
' attribut une variable au texte du sommaire
Set txtSommaire = ActivePresentation.Slides(2).Shapes(2).TextFrame.TextRange
' passe en revue toutes les slides pour récupérer leur titre
For y = 3 To ActivePresentation.Slides.Count
' attribue une variable pour la slide en cours
Set Diapo = ActivePresentation.Slides(y)
'si la slide a un titre
If Diapo.Shapes.HasTitle Then
' ajoute le titre au sommaire avec numéro de diapo
txtSommaire = txtSommaire & Diapo.Shapes.Title.TextFrame.TextRange.Text & vbTab & Chr(9) & Diapo.SlideNumber & vbNewLine
'génération des hypertextes
txtSommaire.ActionSettings(ppMouseClick).Hyperlink.SubAddress = Diapo.SlideID & "," & Diapo.SlideIndex & "," & Diapo.Shapes.Title.TextFrame.TextRange.Text
End If
Next y

] CODE

Cela dit, la numérotation des slides pourraient éventuellement être dans une autre zone de texte qui serait sur la droite... question d'esthétique.

A++
Rejoignez-nous