Soit dans un modèle une liste déroulante qui propose diverses options. Vous souhaitez que l'élément choisi dans cette liste se répercute automatiquement à divers endroits du document.

Il y a différentes solutions. En voici une simple. Je vais prendre un exemple d'une liste déroulante qui contiendrait trois personnes responsables : Claude Dupuis, France Dupont et Pierre Durant.

Pour commencer, insérez un Contrôle de contenu de liste déroulante (onglet Développeur, groupe Contrôles), puis cliquez sur Propriétés. Dans la boîte de dialogue Propriétés du contrôle de contenu :

  • Entrez les éléments de la liste.
  • Dans la zone Balise, saisissez un nom, "choix" dans mon exemple.
  • Cochez l'option Utiliser un style pour mettre en forme le texte tapé dans le contrôle vide.
  • Cliquez sur Nouveau style et donnez un nom au style ("monstyle" dans mon exemple) et OK.
  • De préférence, cochez l'option Ne pas supprimer le contrôle du contenu, afin d'éviter les erreurs.
  • De retour dans la boîte de dialogue Propriétés, cliquez sur OK.

 

NB : vous venez de créer un style de caractère ("monstyle"). Un style de caractère peut s'ajouter sur un style de paragraphe. Soyez très vigilant de ne plus utiliser du tout ce style dans tout votre document. Faites attention en particulier au retour paragraphe qui suit. Si vous lui avez affecté le style en question, sélectionnez-le et appuyez sur Ctrl+Espace.

À présent, partout où vous souhaitez retrouver le nom choisi dans votre liste, vous allez insérer un champ STYLEREF :

  • Appuyez sur Ctrl+F9 et entre les { } tapez le nom du champ suivi du nom du style (monstyle dans mon exemple). Vous devez obtenir ceci : { STYLEREF monstyle }.

  • Vous pouvez copier le champ et le coller partout où vous en avez besoin.
  • Appuyez sur Alt+F9 pour basculer les code de champ.

Je rappelle qu'il s'agit d'un champ et qu'en aucun cas on ne saisit les { } à la main. Vous pouvez aussi utiliser la boîte de dialogue d'insertion de champs.

Faites un test : choisissez un élément dans votre liste déroulante. Il ne se passe rien car les champs ne se mettent pas à jour tout seuls, hormis pour ce champ particulier s'il se trouve en en-tête ou en pied de page. Sélectionnez tout votre document (Ctrl+A) puis appuyez sur F9 pour mettre à jour.

 


Si la mise à jour manuelle des champs ne vous convient pas, on peut ajouter une petite macro qui règle le problème. Cette macro va se déclencher lorsque vous cliquerez en dehors de la liste déroulante.

Notez cependant que si le champ STYLEREF se trouve en en-tete ou en pied de page, pas besoin de macro, la mise à jour est automatique et immédiate.

Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
If CC.Tag = "choix" Then ActiveDocument.Fields.Update
End Sub

Cette macro doit être mise dans ThisDocument. Voyez cet article si nécessaire.

Attention de bien enregistrer votre modèle avec l'extension DOTM.