Aide sur la correction d'un code de recherche

Résolu
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 - 15 mars 2007 à 13:29
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 - 15 mars 2007 à 13:50
Bonjour à tous,

J'ai besoin de votre aide pour corriger ce bout de code.
Son but actuel : rechercher dans une liste un client.
La comparaison se fait sur l'occurence exacte. Ca fonctionne bien.

Mon but (et votre aide) : modifier ce bout de code pour permettre de trouver l'occurence qui débute par les mêmes lettres que celles recherchées.

Actuellement si j'entre la recherche DURANT... le code va identifier DURANT.
Ce que je souhaite c'est pouvoir entrer en recherche DUR

et que le prog puisse m'afficher

DURANT
DURAND
DURANO
DURT
etc...

Je ne vois pas pour l'instant comment modifier mon code pour atteindre ce but. Pourtant.. je suis sûr que c'est tout simple.

Private Sub bu_recherch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bu_recherch.Click
        Dim I As Integer = 0 'variable de boucle
        Dim Achercher As String = TB_rechercher.Text ' le nom à chercher dans la liste
        ' la boucle recherche si l'occurence est trouvée dans la cellule 3 du datagridview
        ' si l'occurence est trouvée alors la ligne est sélectionnée et s'affiche en surbrillance
        ' la variable numvisucli récupère l'ID du client de manière à ouvrir la fiche détaillée dans un form
        Achercher = Achercher.ToUpper
        For I = 0 To compteur
            If (DataGridView1.Rows(I).Cells(3).Value) = Achercher Then _            numvisucli DataGridView1.Rows(I).Cells(0).Value : DataGridView1.Rows(I).Selected True _
               : DataGridView1.FirstDisplayedScrollingRowIndex = I : TB_rechercher.ResetText() _
             : TB_rechercher.Refresh() : Exit Sub
        Next
        TB_rechercher.ResetText() : TB_rechercher.Refresh() : MsgBox("occurence non trouvée")
        TB_rechercher.Focus()

    End Sub

Merci de votre aide.

Philippe - Sympa 74
 

4 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
15 mars 2007 à 13:41
Salut,
Essaie ceci
If UCase(Mid(DataGridView1.Rows(I).Cells(3).Value, 1, Len(Achercher))) = UCase(Achercher) Then

@+: Ju£i?n
Pensez: Réponse acceptée
3
drikce06 Messages postés 2237 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 11
15 mars 2007 à 13:33
Salut avec un if et un left à partir du 5e caractère ça devrai être bon!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 1
15 mars 2007 à 13:37
merci pour la rapidité de la réponse... mais je ne comprends pas bien.. ou je place mon if.. mon left... et le 5è caractère de quoi ?

Philippe - Sympa 74
 
0
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 1
15 mars 2007 à 13:50
Yes yes yes... ca marche... génial... merci.
Bon après-midi à toi.

Philippe - Sympa 74
 
0