Premier article d’une longue série sur l’utilisation des champs dans Word.
Quel « plaisir » de se plonger dans l’exploration merveilleuse de ces codes peu ou pas documentés, de lutter avec de fausses informations (même en version US), de patauger avec des informations contradictoires, de se trouver face à des fonctions obsolètes voir inopérantes.
Aller, on commence mais pas par le pire !
Utilisation de STYLEREF
Permet d'extraire dynamiquement le contenu ou la numérotation d'un texte formaté avec un style spécifique.
Rappels sur la manipulation des champs dans Word
Insertion du champ
- Se positionner là où l'on veut le champ (point d'insertion). Pour STYLEREF c'est généralement dans l'entête ou le pied de page.
- Insérer le champ.
- Solution 1 : Utiliser la boîte de dialogue Champ.
- Aller dans l'onglet Insertion > QuickPart > Champ… > Dans la liste Catégorie sélectionner "(Toutes)" ou "Liaison et renvois" comme catégorie puis dans la liste Noms de champs "RéfStyle".
- Utiliser les outils de la boîte de dialogue pour compléter la syntaxe :
- Utiliser les options classiques présentées directement dans la fenêtre.
- Ou activer le bouton "Codes de champs" pour une saisie libre (assistance par le bouton "Options").
- Valider pour afficher le résultat.
- Solution 2 : Créer le champ "manuellement".
- Utiliser le raccourci clavier Ctrl+F9 pour générer un champ vide { }. (Attention : saisir les accolades au clavier ne fonctionne pas !),

- Saisir le nom du champ et ses paramètres entre les accolades,
- Afficher le résultat en appuyant sur la touche F9 du clavier (mise à jour) ou utiliser la commande du menu contextuel (clic droit de la souris) "Basculer les codes de champs".

- Utiliser le raccourci clavier Ctrl+F9 pour générer un champ vide { }. (Attention : saisir les accolades au clavier ne fonctionne pas !),
Modification du champ
La fenêtre de la "Solution 1" précédente sert seulement à créer le code du champ et n'est pas "rappelable" pour le modifier.
- Utiliser la commande du menu contextuel (clic droit de la souris) "Basculer les codes de champs" vu précédemment.
- Utiliser le raccourcis clavier Alt+F9 affichant les codes de champ de tout le document.
Mise à jour du champ
- Utiliser la commande du menu contextuel (clic droit de la souris) "Mettre à jour les champs".
- Faire une sélection qui englobe le ou les champs à mettre à jour puis utiliser le raccourcis clavier F9.
Syntaxe de STYLEREF
{ STYLEREF "NomDuStyle" [Commutateurs] }- NomDuStyle : Nom du style à rechercher
- Non sensible à la casse.
- Si le nom contient des espaces, des guillemets sont obligatoires.
- Type de style utilisable : Caractère, Paragraphe, Lié.
- Commutateurs : (facultatif) Options facultatives modifiant le comportement de recherche ou d'affichage (voirplus bas).
Exemple d'utilisation classique du champ STYLEREF
Dans l'entête, on génère des entrées de type "dictionnaire" présentant la 1ère et la dernière valeur d'une liste.
{ STYLEREF Noms } - { STYLEREF Noms \l }Aperçut des trois 1ère pages du document avec l'entête présentant la 1ère et la dernière valeur de la 2ème colonne du tableau affiché dans la page.

Les textes en 2ème colonne sont tous formatés en utilisant le style "Noms".
Comportement selon la position du champ
L’emplacement du champ détermine la manière dont Word recherche le style.
| Position du champ | 1ère recherche | Si la 1ère recherche est infructueuse |
|---|---|---|
| Corps du texte | Texte le plus proche qui précède le champ. | Texte le plus proche qui suit le champ. |
| Note de bas de page, ou de Fin, Commentaire. | Texte le plus proche qui précède la marque d’appel. | Texte le plus proche qui suit la marque d’appel. |
| Entête et pied de page | Texte dans la page en partant du haut. | Dans les pages précédentes en remontant puis dans les pages précédentes en descendant |
Texte renvoyé par le champ
- Les espaces et tirets insécables sont remplacés par des espaces et tirets classiques.
- Les tabulations et traits d'union conditionnel sont supprimés.
- La mise en forme du texte n'est pas récupérée sauf le paramètre caractère "Masqué" (voir utilisation de cette exception plus bas).
- Les retours à la ligne (Maj+Entrer) sont conservés.

Si le style désigné dans STYLEREF n'est pas utilisé, le champ revoie le texte suivant :
Erreur ! Il nʹy a pas de texte répondant à ce style dans ce document. Formule permettant d'intercepter l'erreur (Attention : le message d'erreur dépend de la langue).
{ IF { STYLEREF "Nom du style" } = "Erreur*" "" { STYLEREF "Nom du style" } }Cas particuliers
Style Lié
Rappel : Un style de type "Lié" (ex : style "Titre1") peut être utilisé comme un style Caractère (si appliqué à une portion de paragraphe) ou comme un style Paragraphe (si appliqué sur tous le paragraphe).
Si le style n'est appliqué que sur une potion du paragraphe (mode Caractère), il ne sera pas pris en compte par STYLEREF.
Séparateur de style
Rappel : Permet d'avoir 2 paragraphes se suivant sans retour à la ligne (création par raccourcis CTRL + ALT + ENTRER).
Attention : N'insère pas le Séparateur de style mais remplace la fin de paragraphe par le Séparateur de style !
Il est bien pris en compte par REFSTYLE. C'est une astuce permettant de ne récupérer qu'une portion d'un paragraphe qui serait par exemple trop long.
Remarque :
D'autres solutions pour ne récupérer qu'une portion d'un paragraphe existent :
- Appliquer à la partie à "récupérer" un style Caractère ne générant aucune modification. Il suffira d'indiquer à STYLEREF le nom de ce style Caractère.
- Appliquer le formatage Masqué, via la boîte de dialogue Police, à la partie à NE PAS récupérer. Il faudra forcer l'impression du texte masqué dans les options de Word (Fichier>Options>Affichage>Imprimer le texte masqué (Options d'impressions)).

Syntaxe spécifique au style Titre
Ces styles sont très utilisés mais ils changent de nom en fonction de la langue paramétré (exemple : "Header" pour les versions en anglais).
Il est possible de les désigner dans STYLEREF en indiquant simplement le n° du style.
Exemple avec le style "Titre 2" :
{ STYLEREF 2 }(ne fonctionne que pour les styles "Titre", les autres styles et paragraphe du niveau hiérarchique correspondant seront ignorés).
Les commutateurs
Pas facile de trouver des informations explicites sur leurs fonctions autre que des copier-coller de "l'aide" Microsoft.
\l : Inverse le sens de la recherche par défaut (Last ? Lower ?).
\p : Affichage de la Position relative. Texte en fonction de la position où le style a été trouvé par rapport à la position du champ.
Exemple : On récupère les textes "ci-dessus" ou "ci-dessous".
Les suivants nécessitent la mise en place d'une numérotation (hiérarchisation). Cette numérotation NE doit PAS répéter les niveaux supérieurs comme 1, 1.1, 1.2, 1.2.1....
\n : Afficher seulement la Numérotation du paragraphe.
Exemple : Avec "Part B Les loups", on récupère "Part B" ("Part" faisant partie de la numérotation).
\w : Afficher la numérotation complète (Whole ?) du paragraphe.
Exemple : Avec "Part B Les loups", on récupère "Chapitre 2.Part B" ("Part B Les loups" étant un sous niveau de "Chapitre 2 Canis").
\r : Afficher la numérotation du paragraphe Relativement à sa position (soit comme avec \n si le champ est dans la partie "parente", soit comme avec \w si le champ N'est PAS dans la partie "parente").
Exemple : Avec "Part B Les loups", si le champ est dans "Chapitre 2 Canis" on récupère "Part B" sinon "Chapitre 2.Part B".
\t : Suppression des Textes délimitateurs ajoutés à la numérotation (s'utilise avec \n, \w ou \r).
Exemple : Avec "Chapitre 2 Canis", on récupère "2".
Pour \n, \w, \r :
- Si aucune numérotation n'est appliquée, on obtient "0" !
- Si des puces sont appliqué, on obtient "?"
Merci pour votre attention bienveillante.
