• Bonjour les Quickparts, adieu les Insertions Auto !

  • Accentuer les majuscules

  • Comment générer du faux texte ?

  • Comment créer un bouton qui envoie le fichier en cours ?

  • La justification laisse de trop grands blancs entre les mots

  • Comment faire plusieurs références à une même note de bas de page ?

  • A quoi sert l'ancre qui s'affiche quelquefois dans la marge gauche ?

  • Comment faire pour qu'une macro démarre toute seule ?

  • PowerPoint et les fichiers MP3

 
 

Comment faire une table des matières dans un tableau que l'on pourrait classer par ordre alpha ?

 

Soit un document qui liste une série d'astuces. Chaque titre d'astuce est rédigé avec le style Titre 1. La table des matières automatique permet d'obtenir des liens hypertextes pour se rendre directement sur l'article. Il serait intéressant que cette table des matières soit organisée par ordre alphabétique afin de s'y retrouver plus rapidement.

Une table des matières suit l'ordre logique des titres d'un document. On ne peut donc pas la trier par ordre alphabétique. Ou bien, il faudrait la transformer avant en texte brut, mais dans ce cas on perdrait bien sûr l'avantage des liens hypertextes.

La solution serait d'insérer non pas une table des matières mais une série de renvois sur chaque Titre. Cette méthode serait longue et fastidieuse si on la fait manuellement. Voici donc une macro qui va lister ces renvois, et transformer la liste en tableau, de manière à pouvoir faire un tri aisément, soit sur le titre des astuces, soit sur la pagination.

Sub tm_tablo()
'macro écrite par m@rina
Dim Paragraphe As Paragraph, Nombre, Numéro
nombre = 0
For Each Paragraphe In ActiveDocument.Paragraphs
If Paragraphe.style = "Titre 1" Then
nombre = nombre + 1
End If
Next

For Numéro = 1 To nombre
With Selection
.InsertCrossReference ReferenceType:="Titre", ReferenceKind:= _
wdContentText, ReferenceItem:=Numéro, InsertAsHyperlink:=True
.TypeText Text:=vbTab
.InsertCrossReference ReferenceType:="Titre", ReferenceKind:= _
wdPageNumber, ReferenceItem:=Numéro, InsertAsHyperlink:=True
.TypeParagraph
End With
Next Numéro

With Selection
.Extend
.MoveUp Unit:=wdLine, Count:=nombre
.ConvertToTable Separator:=wdSeparateByTabs, NumColumns:=3, _
NumRows:=nombre, AutoFitBehavior:=wdAutoFitContent
End With

End Sub

Si l'on ajoute des astuces, il faudra supprimer le tableau, et relancer la macro.

Rappel : la mise à jour se fait avec F9

 

 

Voir aussi...

 
 
 

Statistiques

3084954
Aujourd'hui246
Hier2057
Cette semaine11877
Ce mois-ci45057
Depuis janvier 20043084954
Compteur d'affichages des articles
6007114

A lire de toute urgence...

Qui est en ligne ?

Nous avons 36 invités et aucun membre en ligne