user_mobilelogo

Word 365: Vous saurez tout !

Pour tout connaître sur Word
Nouvelle version !

600 pages !

9,80 € 

 

En savoir plus.

Dans un document Word, je souhaite avoir une liste déroulante dont le contenu dépend de cases à cocher.

Si la case à cocher A est activée, la liste déroulante doit contenir les données A.
Si la case à cocher B est activée, la liste déroulante doit contenir les données B.
etc.

Cet exemple a été bâti avec des contrôles ActiveX.

Il faut bien entendu une macro que voici, à mettre dans l'éditeur Visual Basic, dans ThisDocument.

On va commencer par créer autant de listes qu'on a de cases à cocher (3 dans mon exemple) :

Sub listeA()
'création liste A
With ComboBox1
.AddItem "choux"
.AddItem "navets"
.AddItem "carottes"
End With
End Sub

 


Sub listeB()
'Création liste B
With ComboBox1
.AddItem "oranges"
.AddItem "pommes"
.AddItem "cerises"
End With
End Sub

 


Sub listeC()
'Création liste C
With ComboBox1
.AddItem "chocolat"
.AddItem "guimauve"
.AddItem "bonbons"
End With
End Sub 



Une fois toutes les listes créées, on va créer une macro qui se déclenchera lorsque la liste déroulante prendra le focus. Cette dernière se remplira en fonction de l'état des cases à cocher.

Private Sub ComboBox1_GotFocus()
'macro écrite par m@rina
'lorsque la liste déroulante prend le focus
'on commence par la vider
ComboBox1.Clear

'puis on la remplit en fonction des cases à cocher
If CheckBox1.Value = True Then Call listeA
If CheckBox2.Value = True Then Call listeB
If CheckBox3.Value = True Then Call listeC

'si aucune case à cocher n'est cochée, on vide la liste déroulante
If CheckBox1.Value = False And CheckBox2.Value = False And CheckBox3.Value = False Then
ComboBox1.Clear
End If
End Sub

 

 

Statistiques

Aujourd'hui153
Hier3318
Cette semaine13570
Ce mois76367
Total depuis 200412594999

6
visiteurs actuellement en ligne

27 novembre 2020