Lier deux menus déroulants

Fermé
EC17 - 21 nov. 2018 à 00:11
m@rina Messages postés 20065 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 22 nov. 2018 à 03:38
Bonjour à tous,

Je cherche à lier deux menus déroulants dans un doc word mais je ne trouve pas la solution.

J’explique :

Page 1 du doc je créé un menu déroulant (appelé menu déroulant "client" par exemple).

Page 2 du même doc je voudrais qu'apparaisse ce menu déroulant "client" et qu'il se mette à jour à chaque fois que je change mon choix dans la page 1.

J'espère que je me suis exprimé assez clairement ;-)

Merci pour votre aide.
A voir également:

2 réponses

m@rina Messages postés 20065 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 23 avril 2024 11 271
21 nov. 2018 à 15:28
Bonjour,

Avant tout, j'ai quelques questions :
- Quelle est ta version de Word ?
- Quel type de menus déroulantes (il y en a 3 sortes) ?
- Si le choix se fait toujours dans le menu déroulant de la page 1, pourquoi un menu déroulante sur la page 2. Il suffit d'un lien vers le choix du premier menu...

m@rina
0
Bonjour Marina,

Merci pour ta réponse.

- J'utilise microsoft office 365 donc j'imagine la dernière version de word.

- j'utilise les menus déroulant avec contrôle de contenu. j'écris les contenus et je laisse la possibilité de modifier le contenu.

- effectivement je me suis peut-être mal exprimé mais c'est ça que je cherche, je voudrais créer des liens entre mon menu déroulant page 1 et un champ page 2 avec le texte que j'ai choisi à la page 1.

Merci pour ton aide.
0
m@rina Messages postés 20065 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 23 avril 2024 11 271
Modifié le 22 nov. 2018 à 03:50
Bonsoir,

Donc il faut une macro qui se déclenche à la sortie du contrôle. Le problème est de savoir où l'on souhaite reporter le résultat de la liste déroulante. Dans Word, contrairement à Excel qui fonctionne avec des références "simples", c'est toujours compliqué.
En effet, un emplacement ce peut être diverses choses, comme
- un emplacement précis (Nb de paragraphes, de mots, de caractères, etc.)
- un objet qui peut être numéroté, comme par exemple un tableau, une zone de texte, une section...
- un signet

On utilise facilement le signet. Le problème c'est qu'il est volatile et qu'il est facile de le supprimer sans s'en rendre compte.

Si ça se passe dans un document protégé, c'est plus facile. Donc sans savoir comment où tu veux récupérer le texte, sans savoir si le document est protégé, voici une macro qui se déclenche à la sortie de la liste déroulante :

Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
Dim B As String
If CC.Tag = "ld" Then
B = CC.Range.Text
RemplirSignet "mon_signet", B
End If
End Sub

Public Function RemplirSignet(A As String, B As String)
' Remplit le signet A avec le texte B sans détruire A
On Error GoTo sortie
Dim Place As Long
Place = ActiveDocument.Bookmarks(A).Range.Start
ActiveDocument.Bookmarks(A).Range.Text = B
ActiveDocument.Bookmarks.Add Name:=A, Range:=ActiveDocument.Range(Place, Place + Len(B))
sortie:
End Function


Pour que cet exemple fonctionne, il faut que tu nommes "Id" la balise de ta liste déroulante, et que tu insères un signet à l'endroit où tu veux récupérer le texte, que tu nommeras "mon_signet".

J'ai utilisé la fonction RemplirSignet pour éviter que si tu changes d'avis, le signet ne soit pas effacé (il le serait par défaut) lors d'un autre choix dans la liste déroulante. J'explique ici :
https://faqword.com/index.php/word/gestion-des-macros/941-inserer-texte-via-macro-a-un-emplacement-avec-signet-sans-supprimer-le-signet

m@rina


0