Bonjour,
Peut qqn me dire comment interdire l'écriture dans une ComboBox(liste déroulante) de sorte que les utilisateurs mettent que les valeurs par défaut?
Merci d'avance
Version imprimable
Bonjour,
Peut qqn me dire comment interdire l'écriture dans une ComboBox(liste déroulante) de sorte que les utilisateurs mettent que les valeurs par défaut?
Merci d'avance
Tout dépend où se situe ta combobox.
Si elle se situe dans un userform, c'est simple tout ce que tu as à faire c'est de paramétrer sa propriété MatchRequired à True. Tu peux faire ça depuis la fenêtre propriétés ou via le code: c'est au goût mais perso je le fais via la fenêtre propriétés.
Si en revanche elle se situe dans ta feuille Excel... là c'est un peu plus compliqué. Car là tu auras beau mettre cette propriété à true ça ne marchera pas (je comprends pas pourquoi d'ailleurs). Il faut donc employer la ruse. Ce que je te propose donc, c'est d'utiliser l'évènement "Lostfocus" de ta combobox pour détecter le moment où l'utilisateur la quitte, et t'en servir pour "forcer" la saisie vers l'un des éléments de la liste.
Voici comment je procède personnellement:
Je précise que ceci ne concerne que la combobox de la boîte à outils contrôles, pas celle de la boîte à outils formulaires.Code:
1
2
3
4
5
6
7
8
9 Private Sub ComboBox1_LostFocus() Dim contenu As String, element_combobox As Variant contenu = ComboBox1.Value For Each element_combobox In ComboBox1.List If element_combobox = contenu Then Exit Sub Next ' Si ce n'est pas une entrée valide, on met la première entité de la liste ComboBox1.Value = ComboBox1.List(0) End Sub