Recherche multiple grosse base de donnée
Bonjour à tous,
J'ai beau chercher sur les forums, je ne trouve pas de problème similaire au mien.
En fait, je veux créer un userform contenant une listbox et 4 champs de recherches (textbox); cette recherche permet de filtrer une base de données (de plus de 25 000 éléments) selon les 4 critères des 4 textbox afin d'afficher le résultat dans la listbox.
J'ai déjà réussi à obtenir ce que je voulais mais les calculs sont beaucoup trop longs; du coup j'ai essayé d'utiliser des tableaux afin de réduire le temps d'exécution.
Je vous donne mon nouveau code pour une seule textbox:
Public Sub TextBox1_Change()
Application.ScreenUpdating = False
Dim capa() As Variant
Dim indus() As Variant
Dim ligne As Integer
Dim t As Integer
nb_lignes = WorksheetFunction.CountA(Range("B:B"))
t = 0
For ligne = 3 To nb_lignes
If (Sheets("composants").Range("B" & ligne) Like "*CAP*") Then
capa(t) = Sheets("composants").Range("B" & ligne)
t = t + 1
ReDim capa(t)
End If
Next
For i = 0 To (t - 1)
If (capa(i) Like "*Industrial: -40 to 85°C*") Then
indus(i) = capa(i)
i = i + 1
ReDim indus(i)
End If
Next
ListBox1.Clear
ListBox1.ColumnCount = 6
ListBox1.ColumnWidths = "100;200;150;50;100;100"
If (TextBox1 <> "") Then
For j = 0 To i
If (indus(j) Like "*" & TextBox1 & "*") Then
ListBox1.AddItem indus(j)
End If
Next
End If
Application.ScreenUpdating = True
End SubMais cela ne marche pas, j'ai "l'indice n'appartient pas à la sélection" lorsque je rentre une valeur dans la textbox ! Je ne comprends vraiment pas le problème.
Quelqu'un peut-il m'aider ?
Mickaël.
J'ai mal dimensionné mes tableaux, je en sais pas d'avance la taille qu'ils feront mais je ne comprends pas l'utilité de "redim"
bonjour
joins un extrait du fichier
je te propose un TCD (ya plein de filtres tout faits)