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