user_mobilelogo

Voir

les 50 derniers articles

  

 

Qui suis-je ?


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'hui712
Hier1867
Cette semaine9648
Ce mois28941
Total depuis 200418231481

8
visiteurs actuellement en ligne

20 avril 2024