Insérer plusieurs numérotations en pied de page

Résolu/Fermé
truffe2miel Messages postés 11 Date d'inscription mardi 14 juin 2016 Statut Membre Dernière intervention 30 juin 2019 - 30 juin 2019 à 10:24
m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 - 1 juil. 2019 à 00:47
Bonjour à toutes / tous ! :)

Je suis confrontée à un problème de mise en page Word dont je ne me sors, peut-être aurez-vous des idées ?

- document de 1.200 pages avec presque autant de sections (il s'agit d'un document converti en word à partir d'un PDF, mais qui a probablement été généré au départ par un logiciel de nomenclature. La mise en forme n'est pas très jolie.

- les pieds de pages sont organisés par section = une section pour un chapitre.

- chaque pied de page contient 3 numérotations de page : au centre, la page en cours. A gauche, le numéro et le titre de la page précédente. A droite, le numéro et le titre de la page suivante.


==> malheureusement, la conversion en PDF a cassé tous les pieds de page et je dois tout refaire.
J'ai constaté que je peux facilement insérer un numéro de la page en cours et le faire redémarrer à 1 pour chaque section. Je peux ensuite insérer un signet sur le titre de chaque page, puis créer en pied de page un renvoi vers ce signet, qui affiche le titre + le numéro précédent pour le côté gauche, et la même chose à gauche avec le titre & page suivante.
J'espère que je suis à peu près claire, là ;)

Mon problème : si je dois faire 5 manipulations pour chaque pied de page, cela me fait 6.000 manipulations pour le document complet - et je n'ai que jusqu'à lundi 12h. Quelqu'un aurait-il une idée de génie pour que tout ceci soit plus rapide ou plus simple ?

Vu de ma fenêtre, c'est impossible - mais sait-on jamais ! :)

Configuration: Windows / Firefox 66.0
A voir également:

2 réponses

m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 11 272
1 juil. 2019 à 00:47
1
m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 11 272
30 juin 2019 à 15:25
Bonjour,

Avant d'aller plus loin dans la lecture de ton problème, tu vas droit au mur avec un document de 1200 sections !!

Ensuite, je ne comprends pas : tu dis qu'il y a autant de pages que de section et que chaque section recommence sa numérotation à 1... Donc, toutes tes pages sont numérotées à 1 ???

Au cas où je n'aurais pas compris cet aspect, tu dis "Je peux ensuite insérer un signet sur le titre de chaque page, puis créer en pied de page un renvoi vers ce signet, etc." Et là, je réponds NON, NON !!! au secours, c'est pas comme ça qu'on fait et effectivement tu peux travailler jusqu'à demain, tu n'auras pas fini et tu auras de la chance si ton document ne se corrompt pas...

Alors, au cas où je n'ai pas compris l'histoire de tes sections dont le nombre est à peu près égal au nombre de pages, et au cas où tu aurais un document à peu près "normal", c'est à dire composé d'un certain nombre de chapitres, le nom du chapitre en cours avec son numéro s'insère très facilement avec mise à jour automatique grâce au champ STYLEREF. Explications :
https://faqword.com/index.php/word/champs/150

Par contre, pour insérer les nom sdes chapitres précédent et suivant, ce n'est pas prévu. Il y a sans doute une possibilité par macro, mais il faut que j'y réfléchisse...

m@rina
0
truffe2miel Messages postés 11 Date d'inscription mardi 14 juin 2016 Statut Membre Dernière intervention 30 juin 2019
30 juin 2019 à 18:22
Bonsoir M@rina :)

Effectivement, je me suis très mal exprimée : après exportation, mon document contenait bien 1.200 pour 1.200 pages, mais j'ai modifié les sections pour qu'elles correspondent à chaque chapitre. J'ai donc maintenant une petite 10aine de section.

Mille merci pour l'astuce STYLEREF, j'ai appliqué et cela fonctionne parfaitement :D
Si jamais tu as une idée géniale pour les pages précédentes & suivantes, je suis preneuse !! (sur excel, j'aurais simplement fait une formule n-1 et n+1, mais là... ?)
0
truffe2miel Messages postés 11 Date d'inscription mardi 14 juin 2016 Statut Membre Dernière intervention 30 juin 2019
30 juin 2019 à 18:54
Erratum : en fait, le client a besoin que le nom de chapitre indiqué soit abrégé par rapport au titre réellement écrit. Donc je vais de toute façon devoir me payer un copier/coller des abréviations dans chaque pied de page de section - ce qui n'est pas grave en soi. Par contre, du coup, le STYLEREF n'est plus adapté :(
J'ai essayé plusieurs options de numérotation en modifiant "commencer à 1" pour chaque section, ou PAGESECTION ou SECTION, mais aucune option pour l'instant ne me donne une numérotation de page qui redémarre à 1 pour que chaque section.
Une idée ? :(
0
m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 11 272
30 juin 2019 à 19:22
Ah.... c'est beaucoup mieux ainsi !! :)

Oui, j'ai réfléchi à ton problème et j'ai trouvé l'idée du siècle !!! :))))

En fait, il faut, via une macro, créer autant de variables qu'on a de titres 1. Et dans le document, on va utiliser des champs DOCVARIABLE pour insérer ces variables dans le pied de page.
L'intérêt de procéder de cette façon plutôt que de faire une macro qui fait tout, c'est que tu va pouvoir gérer tes pieds de page comme tu le souhaites, et choisir manuellement l'emplacement de ces variables, le changer comme tu le souhaites, etc.. Ça permettra donc une grande souplesse d'utilisation surtout quand l'utilisateur ne connaît pas les macros.

Comme c'est une question intéressante, je vais mettre ça sur mon site. En attendant voici la macro à lancer une seule fois :

Sub variables()
'crée une variable pour chaque titre 1
Dim para As Paragraph
Dim texte As String, texte2 As String, nombre, numéro

For Each para In ActiveDocument.Paragraphs
If para.Style = "Titre 1" Then
para.Range.Select
texte = para.Range.Text
nombre = Selection.Characters.Count
'récupère le texte du titre sans le retour paragraphe
texte2 = (Left(texte, nombre - 1))
'récupère le numéro de la section correspondant au titre
numéro = Selection.Information(wdActiveEndSectionNumber)
'crée la variable avec le nom de la section et la valeur titre
ActiveDocument.variables.Add Name:=numéro, Value:=texte2
End If
Next
Selection.HomeKey Unit:=wdStory
End Sub


Une fois la macro exécutée, les variables sont créées. Elles ont pour nom juste le numéro de la section et comme valeur le titre 1 de la section.
Il suffit alors de placer tes champs dans le pied de page, comme tu le souhaites, aux endroits qui te conviennent.

Pour obtenir le titre de la section précédente :
{ DOCVARIABLE "{ ={section}-1 }"}

Pour obtenir le titre de la section suivante :
{ DOCVARIABLE "{ ={section}+1 }"}

Je rappelle que TOUS les champs s'obtiennent avec Ctrl+F9

C'est à faire lorsque le document est terminé. Néanmoins, si tu as des ratés, ou si tu modifies le document pour ajouter ou supprimer ou modifier les titres, il faudra simplement supprimer les variables et les recréer. Voici la macro pour tout supprimer :
Sub suppr_var()
For Each var In ActiveDocument.variables
var.Delete
Next
End Sub


Tu lances cette macro qui supprime tout, et tu relances la première qui recrée tout. Il est inutile de refaire les champs.

m@rina
0
truffe2miel Messages postés 11 Date d'inscription mardi 14 juin 2016 Statut Membre Dernière intervention 30 juin 2019
30 juin 2019 à 21:42
Alors ça, c'est du précis ! Mille merci:)

J'ai lancé la macro en changeant simplement le titre 1 en titre 3 (va savoir pourquoi, tous les titres sont paramétrés en titre 3....). Word a mouliné et visiblement fait des choses cachées.

J'ai ensuite essayé plusieurs méthodes pour insérer les champs dans mes pieds de page, mais sans succès :( Lorsque j'insère un champ DOCVARIABLE (chez moi, ils en s'appellent pas VARIABLEDOC, mais j'imagine qu'ils font la même chose ?), le code de champ suivant s'affiche {DOCVARIABLE \* MERGEFORMAT } et je reçois l'erreur "Erreur ! Variable de document non définie". J'ai essayé plusieurs manières pour insérer le code que tu m'as donné dans ce code existant, mais sans succès.

Donc je fais clairement quelque chose de travers... mais quoi ?
0
m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 11 272
30 juin 2019 à 23:02
Le nom dans la liste est le nom français 'VariableDoc", mais le champ c'est DOCVARIABLE. Les champs sont tous en anglais depuis 17 ans !
Par ailleurs, si tu ne recopies pas le champ comme je te l'ai mis (tu n'as pas mis le nom de la variable), ça ne va pas fonctionner. Quant au \* MERGEFORMAT, tu peux supprimer, il encombre pour rien.

Et encore par ailleurs, je te conseille de remplacer tes styles Titre 3 en Titre 1. Ce n'est pas logique de commencer par un titre de niveau 3.

m@rina
0