Lier deux menus déroulants
Fermé
EC17
-
21 nov. 2018 à 00:11
m@rina Messages postés 21117 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 2 décembre 2024 - 22 nov. 2018 à 03:38
m@rina Messages postés 21117 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 2 décembre 2024 - 22 nov. 2018 à 03:38
A voir également:
- Lier deux menus déroulants
- Deux ecran pc - Guide
- Deux comptes whatsapp - Guide
- Itinéraire google map entre deux adresses - Guide
- Faire deux colonnes sur word - Guide
- Concatener deux cellules excel - Guide
2 réponses
m@rina
Messages postés
21117
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
2 décembre 2024
11 364
21 nov. 2018 à 15:28
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
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
m@rina
Messages postés
21117
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
2 décembre 2024
11 364
Modifié le 22 nov. 2018 à 03:50
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 :
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
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
21 nov. 2018 à 18:52
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.