tedtheOrs
Messages postés37Date d'inscriptionsamedi 12 avril 2008StatutMembreDernière intervention27 janvier 2010
-
28 juil. 2008 à 13:02
tedtheOrs
Messages postés37Date d'inscriptionsamedi 12 avril 2008StatutMembreDernière intervention27 janvier 2010
-
28 juil. 2008 à 19:57
Yop
J'ai dans mon classeur un Userform qui contient des Combobox avec des liste de choix (définies par des zones (colonnes) de mon classeur!
Le code de ces combox est typiquement:
Private Sub ComboBox2_Change()
If ComboBox2.Value <> "" Then
SS_Type_Compo = ComboBox2.Value
End If
End Sub
Le problème est que si l'utilisateur saisit une valeur (par exemple: TOTO), puis l'efface, SS_Type_Compo reste valorisé à TOTO! Et ce malgré le test de la valeur...Comment faire?
cs_chapata
Messages postés214Date d'inscriptionmercredi 2 février 2005StatutMembreDernière intervention 9 avril 20105 28 juil. 2008 à 13:51
Salut,
Utilise la méthode : Exit plutot que change (ca marche aussi pour rafraichir d'autres combo ou controle) :
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If ComboBox1.Value <> "" Then
MsgBox ComboBox1.Value
End If
End Sub
puis, dans ta fenêtre de propriété du combo tu as : RequiredMatch, tu la passes à TRUE.
Ce qui signifie :
lorsque tu vas vouloir sortir du combobox et que ta valeur n'est pas incluse dans ta liste pré-définie,
tu vas obtenir un message d'erreur et ton focus restera dans le combo box,
en attendant que la valeur sélectionnée corresponde à la liste.
Il est toujours préférable de valider les forms par des boutons.
ChaPaT'
*********** Si cette réponse vous convient, merci de valider ce post ***********
tedtheOrs
Messages postés37Date d'inscriptionsamedi 12 avril 2008StatutMembreDernière intervention27 janvier 2010 28 juil. 2008 à 19:57
Yop
C'est pas mal du tout ta methode..Effectivement si l'utilisateur saisit le champ de la Combo, puis l'efface, la valeur n'est pas retenu et un message d'erreru "Valeur Non Valide" apparait jusqu'à valorisation du champ de la combo...Petite précision, dans propriétés, il faut regler MatchRequired à TRUE (mais je chipotte)!
Par contre, le probleme, c'est que dans mon userform, il y a un bouton "Ok" et 1 bouton "Annuler" et, que si le ComboBox "codé" comme tu l'indiques, n'est pas "valorisé", il est impossible de cliquer sur "Annuler" à moins de faire Echap...!