Signaler

Déclencher l'évènement Click avec 1 valeur dans une combo box [Résolu]

Posez votre question Morgan67700 31Messages postés lundi 8 décembre 2014Date d'inscription 13 juillet 2017 Dernière intervention - Dernière réponse le 21 mars 2017 à 09:15 par Morgan67700
Bonjour,

Je suis un peu bloqué lors de la programmation de mon userform.
La combobox nommée "COMBO" charge bien les données selon les critères et sélections précédentes.

Je souhaiterai que:

- Quand plusieurs valeurs sont possibles dans la combobox on vide le champs pour faire le choix. (Ça marche)

- Quand une seule valeur est possible dans la combobox, j'aimerai que la combobox prenne automatiquement cette valeur dans la liste et génére l'évenement "Click" (Private Sub COMBO_Click ()) pour alimenter les combobox d'après sans faire le click gauche avec la souris.
(L'unique valeur se place dans la combobox mais l'évenement Click ne se déclenche pas)

 
If COMBO.ListCount > 1 Then ' Lorsque la combobox a plusieurs choix dans la liste
   COMBO.Value = "" ' Vide la combobox pour choisir une valeur parmi les autres possibilitées
ElseIf COMBO.ListCount = 1 Then
   COMBO.List(0).Click  ' Il y a une erreur mais sans cette ligne la combobox affiche bien l'unique valeur mais je souhaiterai aussi déclencher l'évenement "Private Sub COMBO_Click ()" ou un évènement similaire
End If


Y-a-t il une autre solution pour éviter de passer par l’événement "Private Sub COMBO_Click ()"?

Le problème est que le fait de mettre cette valeur automatiquement dans la combobox, sans cliquer réellement avec la souris, n'alimente pas les autres combobox de valeurs.

Quelqu'un a une idée?

Merci,
Afficher la suite 
Utile
+0
plus moins
Bonjour,

Quand une seule valeur est possible dans la combobox
Comment est remplie la Combobox?
Morgan67700 31Messages postés lundi 8 décembre 2014Date d'inscription 13 juillet 2017 Dernière intervention - 21 mars 2017 à 08:21
Bonjour f894009,

La combobox en question (COMBO) est remplie avec l'évènement "Private Sub COMBO_0_Click () " de la combobox précédente (COMBO_0). Le code se trouve ci-dessous:


 
For i = 1 To 50  ' Prends les données existantes

   If COMBO_0.Value = CStr(Feuil1.Cells(i, 1).Text) Then
         
               COMBO.Value = Feuil1.Cells(i, 2).Text
       
        If COMBO.ListIndex = -1 Then COMBO.AddItem Feuil1.Cells(i, 2).Text ' Evite les doublons
       
    End If

Next i

J'aimerai simplement trouver une solution pour afficher l'unique valeur de la combobox COMBO lorsqu'il n'y en a qu'une et trouver le moyen de provoquer l'évènement "Private Sub COMBO_Click () " en vba car sans cliquer dessus avec la souris ça ne fonctionne pas si j'affiche uniquement la valeur sélectionnée.
Répondre
Donnez votre avis
Utile
+0
plus moins
Ok j'ai trouvé, la solution était :

CallByName Feuil1, "COMBO_Click", VbMethod


Pour déclencher la procédure évènementielle il ne faut pas oublier d'enlever le "Private" du "Private Sub".

Le code complet est donc:

If COMBO.ListCount > 1 Then 
' La combobox a plusieurs choix dans la liste

   COMBO.Value = "" 
' Vide la combobox pour pouvoir choisir une valeur de la liste

ElseIf COMBO.ListCount = 1 Then

   CallByName Feuil1, "COMBO_Click", VbMethod  
' Déclenche l'évenement "Sub COMBO_Click ()"

End If
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !