[résolu] DropButtonClick

DropButtonClick [résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 12-06-2006 à 12:19:01    

Bonjour à tous!
 
j'aurai besoin de votre aide concerant un ptit problème qui commence à devenir agacant -_-'.
J'ai crée une combobox sur une feuille Excel et rempli ensuite avec le procédure "DropButtonClick".
 
Pour éviter que les objets s'additionnent à chaque ouverture, j'ai casé un "Combobox1.Clear" en début de procédure.
Malheureusement, et cela viens de cette méthode, dès que je selectionne l'item dans la liste, il ne s'affiche pas dans ma combobox.
Je pourrai utiliser un "ListIndex" pour afficher le premier élément, mais je souhaiterai surtout afficher l'élément selectionné... et c'est tout la mon problème, j'ai essayé pas mal de méthodes, je n'arrive pas à concilier et l'affichage du résultat et le doublage des mes items.
 
Si quelqu'un à une idée :°?
 
Merci d'avance.
Bye.


Message édité par Touls le 14-06-2006 à 09:22:27
Reply

Marsh Posté le 12-06-2006 à 12:19:01   

Reply

Marsh Posté le 13-06-2006 à 15:32:07    

Bonjour,
 
Je ne sais pas si ca répond exactement à ta demande il faut peut être adapter un peu
 
la mise à jour de la combobox se fait a la première ouverture
Private Sub ComboBox1_DropButtonClick()
    If ComboBox1.ListCount = 0 Then
        For i = 1 To 10
            ComboBox1.AddItem "ok " & i
        Next
    Else
        If ComboBox1.ListIndex > -1 Then ComboBox1.Text = ComboBox1.List(ComboBox1.ListIndex)
    End If
End Sub
 
As-tu besoin de mettre à jour ta liste à chaque fois que tu ouvres la combobox ?
 

Reply

Marsh Posté le 13-06-2006 à 17:02:41    

Salut Paul Hood,
 
en fait j'ai fait quelque chose qui ressemble à ca :
 
Private Sub ComboBox1_DropButtonClick()
 
Dim i As Integer, j As Integer
 
ComboBox1.Clear
ComboBox2.Clear
 
i = 1
 
While Not IsEmpty(Sheets(1).Cells(i, 1).Value)
        ComboBox1.AddItem (Sheets(1).Cells(i, 1).Value)
        i = i + 1
Wend
 
If ComboBox1.Text = "Urgence" Then
     j = 1
     While Not IsEmpty(Sheets(1).Cells(j, 5).Value)
             ComboBox2.AddItem (Sheets(1).Cells(j, 5).Value)
             j = j + 1
 
     Wend
 
End If
End Sub
 
Le seul problème (que je suis en train de résoudre, enfin ca m'a l'air d'etre bien parti :°), c'est simplement le fait que mon item selectionné dans la première combobox disparait après selection et empeche ainsi d'effectuer la condition sur l'item.
Oui, ma liste peut être mise a jour si un utilisateur compte rajouter des éléments(d'où l'interêt d'utiliser des plages plutôt que d'inserer purement via le vb).
Je pense cependant être en bonne voix, je vérifierai ca ce soir et reposterai d'ici demain pour confirmer si j'ai résolu mon problème ^^
 
Merci a toi.


Message édité par Touls le 13-06-2006 à 17:21:46
Reply

Marsh Posté le 13-06-2006 à 17:13:49    

Re,
 
j'ai bien trouvé un moyen mais c'est vraiment du racolage :°
 
En déclarant un string au début puis en lui attribuant la valeur de la 'combobox1' juste avant le '.Clear', on peux ainsi retrouver cette valeur et l'afficher en mettant cette fois apres le premier 'Wend' :
             Combobox1.value = String
 
le seul probleme persistant maintenant, ce sont les deux petits boutons s'affichant dans la combobox le temps qu'elle charge l'item selectionné -_-'
 
Alors effectivement, niveau propreté c'est pas top, j'vais devoir améliorer tout ca, voire à changer de méthode.
 
EDIT: problème résolu... J'utilisais une commande 'Click' et non 'DropButtonClick' comme je l'ai indiqué au dessus... Et effectivement avec le 'DBC', il n'y a plus de temps de chargement avec deux boutons qui s'affichent dans la combobox.


Message édité par Touls le 14-06-2006 à 09:19:59
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed