Aide pour rechercher dans une listbox [Résolu]

dsigmoun 134 Messages postés jeudi 31 juillet 2008Date d'inscription 15 février 2011 Dernière intervention - 4 août 2008 à 15:58 - Dernière réponse : youpiyoyo 539 Messages postés vendredi 6 juin 2003Date d'inscription 14 juillet 2010 Dernière intervention
- 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é.

Merci d'avance pour votre aide.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Kevin.Ory 843 Messages postés mercredi 22 octobre 2003Date d'inscription 7 janvier 2009 Dernière intervention - 5 août 2008 à 04:57
3
Merci
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

Merci Kevin.Ory 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de Kevin.Ory
dsigmoun 134 Messages postés jeudi 31 juillet 2008Date d'inscription 15 février 2011 Dernière intervention - 4 août 2008 à 16:08
0
Merci
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.
Commenter la réponse de dsigmoun
dsigmoun 134 Messages postés jeudi 31 juillet 2008Date d'inscription 15 février 2011 Dernière intervention - 4 août 2008 à 16:26
0
Merci
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é
Commenter la réponse de dsigmoun
dsigmoun 134 Messages postés jeudi 31 juillet 2008Date d'inscription 15 février 2011 Dernière intervention - 5 août 2008 à 08:47
0
Merci
Merci [auteur/KEVINORY/183467.aspx Kevin.Ory] pour la réponse.
Commenter la réponse de dsigmoun
youpiyoyo 539 Messages postés vendredi 6 juin 2003Date d'inscription 14 juillet 2010 Dernière intervention - 5 août 2008 à 16:47
0
Merci
Salut,
Sinon tu as la méthode FindString.
n'oubliez pas "réponse accepté".
@+
youpi :)
Commenter la réponse de youpiyoyo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.