Bonjour
J'ai un souci avec un module VBA.
Le but est de rechercher dans une feuille Excel et dans l'ensemble des colonnes ce que je tape dans la textbox puis d'afficher dans la listbox les lignes correspondante.
Sa marche très bien avec 20000 lignes mais mon problème c'est que j'ai une feuille avec 210 000 lignes et 5 colonnes.
J'ai un code erreur "erreur d'exécution 13 - incompatibilité de type".
Je comprend pas. Est ce la limite de Excel?
Une idée?
Merci d'avance a tous.
Mon code ci dessous
J'ai un souci avec un module VBA.
Le but est de rechercher dans une feuille Excel et dans l'ensemble des colonnes ce que je tape dans la textbox puis d'afficher dans la listbox les lignes correspondante.
Sa marche très bien avec 20000 lignes mais mon problème c'est que j'ai une feuille avec 210 000 lignes et 5 colonnes.
J'ai un code erreur "erreur d'exécution 13 - incompatibilité de type".
Je comprend pas. Est ce la limite de Excel?
Une idée?
Merci d'avance a tous.
Mon code ci dessous
VB:
Private Sub UserForm_Initialize()
Set f = Sheets("BASEDI")
Set Rng = f.Range("A1:E" & f.[E210000].End(xlUp).Row)
Ncol = Rng.Columns.Count
TblTmp = Rng.Value
For i = LBound(TblTmp) To UBound(TblTmp)
ReDim Preserve choix(1 To i)
For K = LBound(TblTmp) To UBound(TblTmp, 2)
choix(i) = choix(i) & TblTmp(i, K) & " * "
Next K
Next i
Me.ListBox1.List = Rng.Value
End Sub
Private Sub TextBox1_Change()
If Me.TextBox1 <> "" Then
mots = Split(Trim(Me.TextBox1), " ")
Tbl = choix
For i = LBound(mots) To UBound(mots)
Tbl = Filter(Tbl, mots(i), True, vbTextCompare)
Next i
If UBound(Tbl) > -1 Then
Dim b(): ReDim b(1 To UBound(Tbl) + 1, 1 To Ncol)
For i = LBound(Tbl) To UBound(Tbl)
A = Split(Tbl(i), "*")
For K = 1 To Ncol: b(i + 1, K) = A(K - 1): Next K
Next i
Me.ListBox1.List = b
Me.Label1.Caption = UBound(Tbl) + 1
Else: MsgBox "...::: CLIENT INTROUVABLE :::..."
End If
Else
UserForm_Initialize
End If
End Sub