Autofilter "vergißt" einige Zeilen wenn mehr als 1000 unterschiedliche Listeneinträge da sind.
Deshalb bastelte ich mir folgenden Code. man hat im Blatt eine TextBox und eine Listbox. Je nach Eingabe in die Textbox erscheinen in der Listbox nur die Einträge die anfangs so wie der Text beginnen, gleichzeitig wird die Liste in C nach dem Text der Textbox gefiltert.
Mein Problem ist nun, nach Verändern des Textes in der Textbox ist der Text blau markiert
Höchstwahrscheinlich geht es also um dies Codestelle:
ListBox1.List = e
If Not AutoFilterMode Then Range("C1").AutoFilter
Range("C1").AutoFilter Field:=1, Criteria1:=TextBox1 & "*", VisibleDropDown:=False
With TextBox1
'.SetFocus
.SelStart = 0
.SelLength = Len(TextBox1)
End With
Was muß ich da verändern damit ich am Ende des Textes weiterschreiben kann ohne daß ich vorher da hinklicken muß?
Daß Setfocus einen Fehler hervorruft, liegt das daran daß die Textbox nicht in einer UF steht?
Die Datei: https://www.herber.de/bbs/user/55341.xls
hat u.a. nachfolgenden Code:
Danke ^ Gruß
Reinhard
Option Explicit
Option Base 1
Private Sub TextBox1_Change()
Dim e(), f(10000), N, Anz
A = Range("A1:A10000")
C = Range("C1:C10000")
For N = 2 To 10000
f(N) = C(N, 1)
If C(N, 1) Like TextBox1 & "*" Then
Anz = Anz + 1
ReDim Preserve e(Anz)
e(Anz) = C(N, 1)
End If
Next N
If IsEmpty(Anz) Then
ReDim e(1)
e(1) = "Nix gefunden"
End If
ListBox1.Clear
If TextBox1 = "" Then
ListBox1.List = f
If AutoFilterMode Then Range("C1").AutoFilter
Else
ListBox1.List = e
If Not AutoFilterMode Then Range("C1").AutoFilter
Range("C1").AutoFilter Field:=1, Criteria1:=TextBox1 & "*", VisibleDropDown:=False
With TextBox1
'.SetFocus
.SelStart = 0
.SelLength = Len(TextBox1)
End With
End If
End Sub