Valeur ComboBox [Résolu]

Signaler
Messages postés
37
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
27 janvier 2010
-
Messages postés
37
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
27 janvier 2010
-
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

Messages postés
214
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
9 avril 2010
4
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  ***********
Messages postés
37
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
27 janvier 2010

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...!