VBA dans Powerpoint : créer un sommaire automatique

nat54

XLDnaute Accro
Je ne retrouve plus le topic :huh:
Objectif : créer un sommaire automatique dans powerpoint
Objectif idéal :D : titre de la diapo + lien hypertexte pointant vers le slide en question
J'avais trouvé ce code sur le net :
Code:
Sub TablesMatière() 
On Error Resume Next 
Dim MonCustomLayout As PowerPoint.CustomLayout 
Dim SI As Slide, tm As Slide, z As TextRange, NSI As Single 
Dim t As String 
Dim Pres As Presentation 
Set Pres = PowerPoint.ActivePresentation 
Set MonCustomLayout = Pres.SlideMaster.CustomLayouts.Item(PowerPoint.PpSlideLayout¬.ppLayoutText) 
Set SI = Pres.Slides.AddSlide(2, MonCustomLayout) 
SI.Shapes.Title.TextFrame.TextRange.Text = "Sommaire" 

Set z = SI.Shapes(2).TextFrame.TextRange 
'Set NSI = Pres.Slides(2).SlideIndex 
For NSI = 3 To Pres.Slides.Count 
'récupère le texte du titre de la diapo d'index NSI 
t = "Diap " & NSI & " " & Pres.Slides(NSI).Shapes(1).TextFrame.TextRange.Text 
'Affiche à la fin du texte la valeur de t et lui rajoute un retour à la ligne 
z.Paragraphs.InsertAfter (t & Chr(13)) 
'z.Text = "essai pour voir" & Chr(13) 
'z.Paragraphs.InsertAfter ("réussi" & Chr(13)) 
'Je rajoute un lien qui pointe sur le slide correspondant 
'z.Paragraphs(z.Paragraphs.Count).ActionSettings(ppMouseClick).Hyperlink.SubAddress = sli.SlideID & ",," 
Next NSI 
End Sub
MAIS il plante sur ça :
http://pix.nofrag.com/b/3/4/bf257c9ebbbc32608cef31c8e1910.html

et je n'arrive pas à résoudre le pb
des adeptes du VBA peuvent m'aider ??
Merci d'avance,
 

nat54

XLDnaute Accro
Re : VBA dans Powerpoint : créer un sommaire automatique

On m'a répondu sur un autre forum ;)
La solution :


Sub TablesMatière()
On Error Resume Next
Dim SI As Slide, tm As Slide, z As TextRange, NSI As Single
Dim t As String
Dim Pres As Presentation
Set Pres = PowerPoint.ActivePresentation
Set SI = Pres.Slides(2)
SI.Shapes.Title.TextFrame.TextRange.Text = "Sommaire"

Set z = SI.Shapes(2).TextFrame.TextRange
' Efface l'ancien sommaire
z.Text = ""
For NSI = 3 To Pres.Slides.Count
'récupère le texte du titre de la diapo d'index NSI
t = Pres.Slides(NSI).Shapes(1).TextFrame.TextRange.Text
'Affiche à la fin du texte la valeur de t et lui rajoute un retour à la ligne
z.Paragraphs.InsertAfter (t & Chr(13))

'Je rajoute un lien qui pointe sur le slide correspondant
z.Paragraphs(z.Paragraphs.Count).ActionSettings(ppMouseClick).Hyperlink.SubAddress = Pres.Slides(NSI).SlideID & ",,"
Next NSI
End Sub
 

nrdz83

XLDnaute Impliqué
Re : VBA dans Powerpoint : créer un sommaire automatique

bonsoir pourquoi tu te compliques la vie power point le fait de lui même la chose essentiel c'est qu'il faut faire une dipositive de masque et de ce fait tu auras automatiquement ta table des matières, bonne soirée amitiés
 

jeffe

XLDnaute Occasionnel
Re : VBA dans Powerpoint : créer un sommaire automatique

hello, je suis en train de faire la même chose mias impossible d'utiliser votre macro,j'ai un msg d'erreur à: t+Pres.slide......
auriez vous un bout de fichier avec le sommair auto
merci
 

Hicsygrek

XLDnaute Occasionnel
Re : VBA dans Powerpoint : créer un sommaire automatique

Bonjour à tous,

bonsoir pourquoi tu te compliques la vie power point le fait de lui même la chose essentiel c'est qu'il faut faire une dipositive de masque et de ce fait tu auras automatiquement ta table des matières, bonne soirée amitiés

Ce qui est vrai avec powerpoint 2003 ne l'est plus avec 2007 ...
Ils ont retiré cette fonction, il faut donc le faire manuellement ou effectivement avec un VBA, m'enfin vu le temps passé à mettre le VBA tu gagnes rien nat54
 

Statistiques des forums

Discussions
283 682
Messages
1 853 490
Membres
152 184
dernier inscrit
LegVal10
Haut Bas