Suche mit For...next dauert zu lange
28.02.2005 07:04:18
Sebastian
ich habe eine Excel-Datei, in der stehen ca. 5600 Adresseinträge.
In meiner UserForm habe ich eine Suchfunktion mit For...next.
Wenn ein TextFeld geändert wird, sprich eine Eingabe erfolgt, durchsucht er für jeden Buchstaben, der eingegeben wird die entsprechenden Einträge.
Bsp.:
Eingabe ist A
Er sucht alle die mi A anfangen.
Nächste eingabe ist b
Es steht in der TextBox nun Ab
Er sucht alle Einträge die mit Ab anfange.
usw.
Hier ist der Code den ich verwende:
If txtKarteiNr "" And txtKarteiNr "Kartei-Nr." Then
Windows("KarteiGäste.xls").Activate
Sheets("Liste").Select
Range("A2:H65536").ClearContents
Sheets("Kartei").Select
Dim wks As Worksheet
Dim k&, i&
Set wks = Sheets("Liste")
k = 2
With Sheets("Kartei")
For i = 4 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(i, 1) = txtKarteiNr Then
k = k + 1
.Range(.Cells(i, 1), .Cells(i, 8)).Copy wks.Cells(k, 1)
End If
Next
End With
Sheets("Liste").Select
With lbxKartei
.RowSource = "Liste!A3:H" & Sheets("Liste").Range("J1")
.ColumnWidths = "20;120;70;70;90;30;40;70"
End With
Windows("Hotel 1.0.xls").Activate
End If
If txtKarteiNr = "" Then
Windows("Karteigäste.xls").Activate
Sheets("Kartei").Select
With lbxKartei
.RowSource = "Kartei!A5:H" & Sheets("Kartei").Range("Z3")
.ColumnWidths = "20;120;70;70;90;30;40;70"
End With
Windows("Hotel 1.0.xls").Activate
End If
Jetzt dauert dieser Suchvorgang entsprechend lange bei 5600 Einträgen.
kann man das ganze schneller machen?
MfG
Sebastian