VBA Word : comment synchroniser 2 listes déroulantes
Yersi -
Bonjour,
Mon postulat de départ est que je dois, sur un document word, créer un formulaire avec des listes déroulantes utilisant du content control (ni Active X ni hérités).
Dans ce formulaire j'ai
- une liste déroulante "Civilité" avec les choix "Monsieur" et 'Madame"
- une liste déroulante "agee" avec les choix "agé" et "agée"
Le but étant que lorsque "Monsieur" est choisi dans la liste "Civilité", automatiquement "agé" soit choisi dans la liste "agee"
J'ai commencé à regarder du côté de VBA et en tripatouillant des bouts de code trouvés ça et là, le plus proche que j'ai pu obtenir est ceci mais ça me renvoie une "erreur d'execution 438"
Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean) Dim choix As String choix = CC.Range.Text If CC.Title = "Civilité" Then Select Case choix Case "Monsieur" ActiveDocument.CC.Title("Agee").DropDown.Value = 1 Case "Madame" ActiveDocument.CC.Title("Agee").DropDown.Value = 2 End Select End If End Sub
Je ne suis pas compétant sur ce langage et je n'ai malheureusement pas le temps de pousser les recherches plus loin, est-ce que l'un ou l'une de vous aurait une idée ?
Merci par avance
Windows / Firefox 110.0
- Document_contentcontrolonexit
- Word 2013 - Télécharger - Traitement de texte
- Tableau word - Guide
- Espace insécable word - Guide
- Word et excel gratuit - Guide
- Supprimer une page word - Guide
2 réponses
Bonsoir,
ci-dessous code :
Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean) Dim ctrl As ContentControl Dim valeur As ContentControlListEntry Dim i As Integer If CC.Title = "Civilité" Then For Each ctrl In ActiveDocument.ContentControls If ctrl.Title = "agee" Then For Each valeur In CC.DropdownListEntries i = valeur.Index If valeur = CC.Range.Text Then Exit For Next valeur ctrl.Range.Text = ctrl.DropdownListEntries(i) End If Next ctrl End If End Sub