Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ComboBox

1 réponse
Avatar
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=EAme chose dans le programme en pr=E9sentant une
donn=E9e (Code) =E0 trouver,
S=E9quence du style du style
For J=3D1 To Combo1.ListCount
Combo1.ListIndex =3D J
A$=3DCombo1.text
If Instr(A$, Code)>0 Then Exit For
Next
Cela ne marche pas !
Merci si vous pouvez m'expliquer
Michel

1 réponse

Avatar
jean-marc
> wrote in message
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_' ;