user_mobilelogo

 

Pour insérer plusieurs tables des matières dans un même document, il faut créer un signet par chapitre concerné, et utiliser ce signet dans le champ TOC.


Voir le tuto.

Voici un exemple de macro (à adapter selon votre document) qui :

  • passe tout le document en revue et insère un sommaire avant chaque titre de niveau 1
  • insère le titre Sommaire, avec le style Sous-titre

Important : Ces sommaires ne pourront être mis à jour qu'en relançant la macro qui peut être exécutée autant de fois qu'on le souhaite car elle commence par supprimer les sommaires existants avec leur titre.

Lorsque le document sera terminé, il sera temps d'ajouter la table des matières générale.

 

Sub plusieurs_sommaires()
'macro écrite par m@rina
Dim doc As Document, tm As TableOfContents, paragraphe As Paragraph
Set doc = ActiveDocument

'supprime toutes les tables existantes
For Each tm In doc.TablesOfContents
tm.Delete
Next

'supprime tous les titres des sommaires existants
For Each paragraphe In doc.Paragraphs
If paragraphe.Style = "Sous-titre" Then
paragraphe.Range.Delete
End If
Next

'passe chaque paragraphe en revue,
'vérifie s'il est de style Titre 1
'et insère la tm avec le titre
For Each paragraphe In doc.Paragraphs
If paragraphe.Style = "Titre 1" Then
paragraphe.Range.Select
Set chapitre = Selection.Bookmarks("\headinglevel")
chapitre.Select
doc.Bookmarks.Add Name:="partie", Range:=Selection
With Selection
.Collapse Direction:=wdCollapseStart
.TypeText Text:="Sommaire"
.TypeParagraph
.MoveUp Unit:=wdLine, Count:=1
.Style = doc.Styles("Sous-titre")
.MoveUp Unit:=wdLine, Count:=-1
.Fields.Add Range:=Selection.Range, _
Type:=wdFieldEmpty, Text:= "TOC \b partie  \H ", PreserveFormatting:=True
End With
End If
Next

End Sub

 

Lorsque le document sera terminé, vous pourrez alors ajouter la table des matières générale.

 

Statistiques

Aujourd'hui332
Hier1893
Cette semaine7401
Ce mois26694
Total depuis 200418229234

5
visiteurs actuellement en ligne

19 avril 2024