Antoine C.
XLDnaute Nouveau
Bonjour à tous,
J'utilise une TextBox de recherche pour afficher les noms recherchés dans une ListBox. Sur quelques lignes cela va très vite, mais j'ai 1319 lignes pour l'instant et le délais est très long.
Voici le code utilisé, qu'en pensez-vous ? Puis-je l'améliorer ?
Merci pour votre aide
J'utilise une TextBox de recherche pour afficher les noms recherchés dans une ListBox. Sur quelques lignes cela va très vite, mais j'ai 1319 lignes pour l'instant et le délais est très long.
Voici le code utilisé, qu'en pensez-vous ? Puis-je l'améliorer ?
VB:
'---RECHERCHE---
Private Sub txtNomClient_Change() 'Recherche sur la textbox
'Déclaration des variables
Dim i As Long
Dim NbLigne As Long
'On doit vider la liste à chaque changement
Me.ListBox_Nom.Clear
Me.CboProjet.Clear
Me.txtNumLigne = ""
'Affectation des variables
NbLigne = Application.WorksheetFunction.CountA(Feuil1.Range("PlageNomClient"))
'on teste si la TextBox à été bien saisie
If Me.txtNomClient <> "" Then
'On boucle toutes les valeurs de la plage des noms
For i = 1 To NbLigne
'on teste que la valeur de la cellule est identique au contenu de la TexteBox
If Feuil1.Cells(i + 1, 52) Like "*" & Me.txtNomClient & "*" Then
'On ajoute la valeur dans la ListBox
Me.ListBox_Nom.AddItem Feuil1.Cells(i + 1, 52)
'On en profite pour compter le nombre de valeur dans la liste
Me.frmRecherche.Caption = Feuil4.Range("H66") & " Recherche : " & Me.ListBox_Nom.ListCount & " résultats"
End If
Next i
End If
'On selectione le premier contact si il en reste 1
If Me.ListBox_Nom.ListCount = 1 Then
Me.ListBox_Nom.Selected(0) = True
End If
End Sub
Merci pour votre aide