Menu

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

Morgan67700 32 Messages postés lundi 8 décembre 2014Date d'inscription 17 avril 2018 Dernière intervention - 20 mars 2017 à 17:28 - Dernière réponse : Morgan67700 32 Messages postés lundi 8 décembre 2014Date d'inscription 17 avril 2018 Dernière intervention
- 21 mars 2017 à 09:15
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 

3 réponses

f894009 13043 Messages postés dimanche 25 novembre 2007Date d'inscription 23 mai 2018 Dernière intervention - 21 mars 2017 à 07:06
0
Utile
Bonjour,

Quand une seule valeur est possible dans la combobox
Comment est remplie la Combobox?
Morgan67700 32 Messages postés lundi 8 décembre 2014Date d'inscription 17 avril 2018 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.
Morgan67700 32 Messages postés lundi 8 décembre 2014Date d'inscription 17 avril 2018 Dernière intervention - Modifié par Morgan67700 le 21/03/2017 à 09:15
0
Utile
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