[RESOLU] Idées pour accélérer recherche via textbox - problème de lenteur

Bulr6

XLDnaute Nouveau
Bonjour à tous,

J'ai un soucis surement facilement solutionnable ... ou pas du tout d'ailleurs :p

En fait via un US et une textbox, je cherche une valeur dans une liste (numéro de 5 OU 8 chiffres) avec plusieurs milliers de lignes.
Dès que la textbox trouve une occurrence elle remplit les textbox suivantes avec les valeurs correspondantes.

Tout ça fonctionne très bien sauf que ça devient très long avec les lignes qui s'ajoutent au fur et à mesure.

Auriez vous une piste pour accélérer cette recherche ?

Merci à vous de l'aide que vous pourrez m'apporter.
 

Pièces jointes

  • test.xlsm
    91.8 KB · Affichages: 55
  • test.xlsm
    91.8 KB · Affichages: 52
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Idées pour accélérer recherche via textbox - problème de lenteur

Bonjour Bulr6,

pourquoi ne pas utiliser un filtre au lieu d'une recherche, une fois celà fait, il n'y a plus qu'a récuperer les valeurs.


A+ :cool:
 
Dernière édition:

Bulr6

XLDnaute Nouveau
Re : Idées pour accélérer recherche via textbox - problème de lenteur

Bonjour Burl6, Lone-wolf,

Un essai de solution...

Bonjour Bernard.
Merci de la réponse mais malheureusement cela ne fonctionne pas pour mon utilisation. Il s'agit de taper le numéro au clavier. J'ai bien peur qu'en passant par la combobox pour chercher l’occurrence ça prenne plus de temps. D'ailleurs le CB n'accepte qu'un seul caractère
 

Lone-wolf

XLDnaute Barbatruc
Re : Idées pour accélérer recherche via textbox - problème de lenteur

Bonjour Bernard :D


Un exemple avec filtre avancé


Code:
Private Sub TextBox1_AfterUpdate()
Dim lig As Long
Dim i As Long

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
  
  With Sheets("Utilisateurs")
  .Range("$A$2:$C$2900").AutoFilter Field:=1, Criteria1:=TextBox1, Operator:=xlAnd
  lig = .Range("A65536").End(xlUp).Row
  For i = 3 To lig
        TextBox2 = .Range("b" & i)
        TextBox3 = .Range("c" & i)
    Next i
If .FilterMode Then .ShowAllData
End With

TextBox1 = ""
End Sub

Private Sub CommandButton1_Click()
Dim i As Long

For i = 1 To 3
Me.Controls("TextBox" & i) = ""
Next i
Unload Me
End Sub

Met ShowModal à False dans les propriétés de l'usf



A+ :cool:
 
Dernière édition:

Bulr6

XLDnaute Nouveau
Re : Idées pour accélérer recherche via textbox - problème de lenteur

Bonjour Bernard :D


Un exemple avec filtre avancé


Code:
Private Sub TextBox1_AfterUpdate()
Dim lig As Long
Dim i As Long

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
  
  With Sheets("Utilisateurs")
  .Range("$A$2:$C$2900").AutoFilter Field:=1, Criteria1:=TextBox1, Operator:=xlAnd
  lig = .Range("A65536").End(xlUp).Row
  For i = 3 To lig
        TextBox2 = .Range("b" & i)
        TextBox3 = .Range("c" & i)
    Next i
If .FilterMode Then .ShowAllData
End With

TextBox1 = ""
End Sub

Private Sub CommandButton1_Click()
Dim i As Long

For i = 1 To 3
Me.Controls("TextBox" & i) = ""
Next i
Unload Me
End Sub

Met ShowModal à False dans les propriétés de l'usf



A+ :cool:

Merci, cela fonctionne bien.
Il me reste un petit soucis car en fonction du résultat de la textbox j'ai/ou non l'affichage de label ... et donc comme il "calcule" en permanence si la valeur existe, donc de toute façon il rame
Mon problème était résolu et je vous en remercie
 

Discussions similaires