Valeur ComboBox

Résolu
tedtheOrs Messages postés 37 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 27 janvier 2010 - 28 juil. 2008 à 13:02
tedtheOrs Messages postés 37 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 27 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?

D'avance merci.

2 réponses

cs_chapata Messages postés 214 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 9 avril 2010 5
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  ***********
3
tedtheOrs Messages postés 37 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 27 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...!
0
Rejoignez-nous