Plusieurs tables des matières dans 1 doc word [Résolu/Fermé]

Signaler
Messages postés
1
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
2 mai 2008
-
 isrdum -
Bonjour,
Je cherche à faire une table des matière pour chacun de mes chapitres sous word 2003 mais je n'arrive pas à limiter la table à un chapitre, il ne fait que des tables complètes. Comment dois-je m'y prendre?
J'utilise word 2003 et le mode document maitre, mon document fait presque 200p et comprend 9 sous documents.
Merci pour votre aide.

7 réponses

Même si cette demande est trééééés vieille, voici une astuce peut-être moins connue mais tellement efficace pour résoudre ce problème.

En mode plan, sélectionnez un chapître et aposez-y un signet (ex: CHAP_1)
Revenez dans votre chapitre est insérez-y un champ de typr "sommaire" et précisez les styles de titre a afficher et le signet à prendre en compte.

Par exemple : {TOC \B CHAP_1 \o "2-3" \H \Z \U} affiche la table des matières contenue dans le signet "CHAP_1", affiche seulement les entrées correspondants aux niveau 2 à 3. Les autres commutateurs sont des options d'affichage que je vous laisse découvrir.
8
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 59792 internautes nous ont dit merci ce mois-ci

Messages postés
270
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
3 mai 2011
38
Ce post date un peu mais grâce à alizeezephir j'ai pu règler ce problème...

Bon, la méthode est un peu chiante. Alors je propose une Macro pour ceux comme moi qui doivent le faire assez souvent.
Mes document se divisent en chapitres (Titre 1) pour lesquels j'ai plusieurs niveaux de sous-titres.
Je fais un premier sommaire avec le premier niveau de titres (chapitres) puis un sommaire par chapitre.

Si c'est votre cas, cette macro est faite pour vous ! En utilisant les liens de la première table des matières, on se fait une dizaine de chapitres en 5 mn...

DISCLAIMER : testé sous Word 2003 - Sauvergardez vos données et utilisez ce programme à vos risques et périls !

Dim Test As Integer
Test = 1
If ActiveDocument.Bookmarks.Exists("Chap") = True Then
    Test = MsgBox("Vous allez perdre le signet nommé Chap" & Chr(10) & "Cliquez sur ok pour éxécuter la Macro quand même", vbOKCancel, "Le signet Chap existe déjà")
End If
If (Test = 1) Then
' Sauvegarde du point d'entrée de la TOC dans la variable "Origin"
    Dim Origin As Range
    Set Origin = Selection.Range
' Sélection du Chapitre
    Selection.SetRange Start:=ActiveDocument.Bookmarks("\HeadingLevel").Start, _
                        End:=ActiveDocument.Bookmarks("\HeadingLevel").End
' Appliquer le signet "Chap" à la sélection (chapitre)
    ActiveDocument.Bookmarks.Add Name:="Chap", Range:=Selection.Range
' Création d'une table des matière au point d'entrée (Origin) contenant les titres 2 à 9 du chapitre
    Selection.Fields.Add Range:=Origin, Type:=wdFieldEmpty, Text:= _
        "TOC \b Chap \O ""2-9"" \H \Z \U", PreserveFormatting:=True
' Supression du signet "Chap" del
    ActiveDocument.Bookmarks("Chap").Delete
End If


Pour ceux qui ne savent pas trop utiliser les macro, sous Word 2003, faites 'Alt+F8', entrez le nom de la macro puis 'entrée'.
Coller le texte ci-dessus à l'endroit où clignote le curseur dans l'éditeur.
Enregistrez, fermez l'éditeur.
Placez votre curseur à l'endroit où vous souhaitez insérer la table partielle (entre le titre du premier chapitre et le début du chapitre), puis 'Alt+F8', sélectionnez la nouvelle Macro et 'Exécuter'.


Remarque :
Dans la ligne ci-dessous, le nombre 9 correspond au dernier niveau de titres à mettre dans ce sommaire. Modifiez pour obtenir le résultat attendu.
"TOC \b Chap \O ""2-9"" \H \Z \U", PreserveFormatting:=True

Salut à tous !
Juste rapide si ca peux en aider certains:
References ->Table of content->Insert Table of content -> Ici vous pouvez choisir le niveau de détail de votre sommaire...
C'est tout!

(bon, mon Word est en Anglais mais je pense que vous avez réussi à traduire)
Une solution

http://office.microsoft.com/fr-ca/word-help/table-des-matieres-iii-creer-une-table-des-matieres-a-laide-de-champs-et-creer-plusieurs-tables-des-matieres-RZ010266698.aspx?section=9
Messages postés
51931
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 juillet 2020
13 663
Cela ne correspond pas du tout à la question posée : 1 TDM par chapitre !
Messages postés
270
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
3 mai 2011
38
Bien vue, mais c'est ce que fait mon script ;)
Messages postés
51931
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 juillet 2020
13 663
J'ai bien peur que ce soit impossible de manière automatique.
Ce que je suggère, c'est de faire ta TDM normalement, puis de faire des couper-coller.
L'inconvénient, c'est qu'il faudra recommencer à chaque modification de la structure du document. Donc manip à faire à la fin du travail !
J'ai le même problème et j'ai trouvé la réponse à https://support.microsoft.com/fr-fr/help/181595

Il faut cependant extrapoler un peu pour adapter la solution à word 2003. Ça marche !

;-)

Bonjour à tous,

je viens de trouver la solution, c'est pas très compliqué, donc allons y :

dans un premier temps il faut créer un signet correspondant au texte de la table des matières partielle que l'on veut (par exemple, selectionner le chapitre I en entier et cliquer sur insertion / signet et nommer ce signet comme vous voulez : chapitreI dans cet exemple).

Puis mettez vous à l'endroit où vous voulez insérer la table des matières et faites insertion / champ, selectionner sommaire dans la liste et cliquer sur table des matières qui apparait en haut à droite.
Word vous demande alors s'il doit remplacer la table des matières existante, répondez NON.

Il vous insére alors à l'endroit demandé un table des matières complète...qu'il va falloir réduire.
Pour ce faire, sélectionner cette table des matières, faites un clique droit et cliquer sur bacsuler les codes champs.

Apparait alors un truc du genre :
{TOC \0 "1-3" \h \z \u }
les numéros 1-3 correspondent aux niveaux qui sont affichés dans la table.
Pour obtenir une table partielle, il convient de modifier ce champ comme ceci :

{TOC \b chapitreI \0 "1-3" \h \z \u }
chapitreI est le nom du signet défini précédemment, attention il faut bien respecter les espaces.

et voici mes sources

https://heureuxoli.developpez.com/office/word/champs/#LIV-H-3
https://heureuxoli.developpez.com/office/word/tablemat/#L5

en espérant que ça puisse servir à d'autres
Quel talent, bravo pour cette solution qui est très bien décrite et qui marche parfaitement !
J'arrive au moins aussi tard que Marco, mais je souligne quand meme l'efficacite de la methode donnee par alizeezephir !
Je precise quand meme qu'apres avoir modifie les codes champs, il faut selectionner la ligne, cliquer droit et cliquer sur "editer les champs"

Merci !
Messages postés
270
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
3 mai 2011
38
Tu te prends la tête MPDR, ma macro fonctionne parfaitement dans un document bien structuré :
Chapitre 1 (titre 1)
{lancer la macro avec le pointeur qui clignote ici}
Titre 2
Titre 3
Titre 3
Titre 3
Titre 2
Titre 3
Titre 3
Titre 3
Chapitre 2 (titre 1)
{re lancer la macro avec le pointeur qui clignote ici}
Titre 2
Titre 3
Titre 3
Titre 3
Titre 2
Titre 3
Titre 3
Titre 3
etc.
Tu peux faire une icône avec la macro si tu l'utilise souvent :)
Bon courage !