dsigmoun
Messages postés135Date d'inscriptionjeudi 31 juillet 2008StatutMembreDernière intervention25 février 2023
-
4 août 2008 à 15:58
youpiyoyo
Messages postés539Date d'inscriptionvendredi 6 juin 2003StatutMembreDernière intervention14 juillet 2010
-
5 août 2008 à 16:47
Bonjour,
Je souhaiterai faire une recherche dans une liste box et affiché l'ensemble des résultats dans une autre listbox et pas seulement le premier trouvé.
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 5 août 2008 à 04:57
Salut,
"For i = 1 To ListBox1.Items.Count - 1" Est.ce volontaire que tu commence à l'index 1? Le 1er élément a l'index 0 et non 1...
Utilise la méthode Equals pour tester si le texte correspond:
ListBox2.Items.Clear()
ListBox2.Visible = True
For Each item As String In ListBox1.Items
If String.Equals(item, TextBox1.Text, StringComparison.InvariantCultureIgnoreCase) Then
ListBox2.Items.Add(item)
End If
Next
"Autre problème : la recherche ne se fait que sur les premiers
caractères. Si le mot recherché est au milieu d'un élément, il n'est
pas trouvé"
Dans ce cas tu ne dois pas tester si le texte est le même, mais si il contient la chaine recherché. Le plus simple dans ce cas, à mon avis, est de faire un ToLower pour ne pas prendre en compte les majuscules:
ListBox2.Items.Clear()
ListBox2.Visible = True
For Each item As String In ListBox1.Items
item = item.ToLower
If item.Contains(TextBox1.Text.ToLower) Then
ListBox2.Items.Add(item)
End If
Next
dsigmoun
Messages postés135Date d'inscriptionjeudi 31 juillet 2008StatutMembreDernière intervention25 février 20232 4 août 2008 à 16:08
J'ai reussi avec ce code :
Dim i As Integer
Dim j As Integer
ListBox2.Items.Clear()
ListBox2.Visible = True
For i = 1 To ListBox1.Items.Count - 1
j = InStr(ListBox1.Items(i), TextBox1.Text)
If j = 1 Then
ListBox2.Items.Add(ListBox1.Items(i).ToString)
End If
Next i
Maintenant, mon problème est avec les majuscules. Dans ma listbox1, la première lettre est en majuscule. Lorsque je fais une recherche sans mettre la majuscule, les arguments ne sont pas trouvés.