ComboBox

Le
michel.arnoux
Bonjour,
En cliquant sur une ligne d'une ComboBox, on copie cette ligne dans la
zone de saisie (en haut).
Je voudrais faire la même chose dans le programme en présentant une
donnée (Code) à trouver,
Séquence du style du style
For J=1 To Combo1.ListCount
Combo1.ListIndex = J
A$=Combo1.text
If Instr(A$, Code)>0 Then Exit For
Next
Cela ne marche pas !
Merci si vous pouvez m'expliquer
Michel
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jean-marc
Le #15376191
> news:e207d883-e6aa-4d4e-b0ef->
Bonjour,
En cliquant sur une ligne d'une ComboBox, on copie cette ligne dans la
zone de saisie (en haut).
Je voudrais faire la même chose dans le programme en présentant une
donnée (Code) à trouver,
Séquence du style du style
For J=1 To Combo1.ListCount
Combo1.ListIndex = J
A$=Combo1.text
If Instr(A$, Code)>0 Then Exit For
Next
Cela ne marche pas !
Merci si vous pouvez m'expliquer



Hello,

c'est parce que une combobox à ses indices
qui commmencent a ZERO (et pas 1) et donc terminent
à listcount-1, et PAS listcount.

Voici donc du code qui fonctionne :

Private Sub FindAndSetCombo(cc As ComboBox, ByVal Code As String)
Dim i As Long

For i = 0 To cc.ListCount - 1
If InStr(cc.List(i), Code) > 0 Then
cc.ListIndex = i
Exit For
End If
Next i
End Sub

Private Sub Command1_Click()

FindAndSetCombo Combo1, "paul"
End Sub

Private Sub Form_Load()
Combo1.Clear
Combo1.AddItem "pierre"
Combo1.AddItem "paul"
Combo1.AddItem "jacques"

Combo1.ListIndex = 0

End Sub


Mais ce n'est pas nécessairement la meilleure façon
de faire.
On peut faire ceci très élégamment avec un petit message.

VOici un article de la FAQ qui explique cela :

http://faq.vb.free.fr/index.php?question5

Bonne lecture :-)

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Publicité
Poster une réponse
Anonyme