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

trouver une ligne dans une listbox

5 réponses
Avatar
camille
Bonjour, voila j'ai fait un form avec un champ ind=E9pendant et une
listbox

je souhaiterais que lorsque je tape des lettres dans la textbox, la
ligne correspondant au texte tap=E9 se retrouve automatiquement
s=E9lectionn=E9e dans la listbox.

j'imagine qu'il faut utiliser l'evenement "sur touche relach=E9e" dans
la text box, mais je ne vois pas comment faire..

Merci pour votre aide.

Camille

5 réponses

Avatar
3stone
Salut,

"camille"
Bonjour, voila j'ai fait un form avec un champ indépendant et une
listbox

je souhaiterais que lorsque je tape des lettres dans la textbox, la
ligne correspondant au texte tapé se retrouve automatiquement
sélectionnée dans la listbox.

j'imagine qu'il faut utiliser l'evenement "sur touche relachée" dans
la text box, mais je ne vois pas comment faire..
----------------

Elle le fait... pour la première colonne visible et la première lettre.
S'il faut plus, il faudra le programmer.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
camille
merci 3Stone.

Et bien oui je voudrais le programmer et que ça ne marche pas que pour
la 1ere lettre cad que si je tape "dup" dans la textbox, "Dupont" se
retrouve sélectionné dans la listbox.
Donc si tu savais coment je peux faire ça ...
Merci pour ton aide
Avatar
Eric
Bonjour,

Une idée.
Si la zone de liste a pour nom Liste0 et la zone de texte Texte2, sur
l'évènement Change (Changement) de la zone de texte tu peux mettre:

Private Sub Texte2_Change()
Dim i As Integer
For i = 0 To Me.Liste0.ListCount - 1
If Left(Me.Liste0.ItemData(i), Len(Me.Texte2.Text)) =
Me.Texte2.Text Then
Me.Liste0.Selected(i) = True
Exit For
End If
Next i
End Sub

merci 3Stone.

Et bien oui je voudrais le programmer et que ça ne marche pas que pour
la 1ere lettre cad que si je tape "dup" dans la textbox, "Dupont" se
retrouve sélectionné dans la listbox.
Donc si tu savais coment je peux faire ça ...
Merci pour ton aide



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
re,

L'exemple précédent ne fonctionne que pour une liste ayant une seule
colonne. L'exemple suivant suppose que la 1ere colonne contient la clé
primaire de la table(souvent cachée) et la seconde les noms. Si les noms
sont dans la colonne 2 ou 3 ou ... tu adaptes la ligne

If Left(Me.Liste0.Column(1, i), Len(Me.Texte2.Text)) = Me.Texte2.Text Then

en remplacant le 1 par le rang de la colonne -1 car dans la collection
des colonnes l'indice commence à 0.

Private Sub Texte2_Change()
Dim i As Integer
For i = 0 To Me.Liste0.ListCount - 1
If Left(Me.Liste0.Column(1, i), Len(Me.Texte2.Text)) =
Me.Texte2.Text Then
Me.Liste0.Selected(i) = True
Exit For
End If
Next i
End Sub

--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
camille
On 26 fév, 18:11, Eric wrote:
re,

L'exemple précédent ne fonctionne que pour une liste ayant une seule
colonne. L'exemple suivant suppose que la 1ere colonne contient la clé
primaire de la table(souvent cachée) et la seconde les noms. Si les noms
sont dans la colonne 2 ou 3 ou ... tu adaptes la ligne

If Left(Me.Liste0.Column(1, i), Len(Me.Texte2.Text)) = Me.Texte2.Text T hen

en remplacant le 1 par le rang de la colonne -1 car dans la collection
des colonnes l'indice commence à 0.

Private Sub Texte2_Change()
Dim i As Integer
For i = 0 To Me.Liste0.ListCount - 1
If Left(Me.Liste0.Column(1, i), Len(Me.Texte2.Text)) =
Me.Texte2.Text Then
Me.Liste0.Selected(i) = True
Exit For
End If
Next i
End Sub

--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


OK merci c'est impeccable !