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
- Word et excel gratuit - Guide
- Espace insécable word - Guide
- Supprimer 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