Clever-Excel-Forum

Normale Version: Tabelle über Suchfeld filtern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

jetzt ist mir doch noch ein Problem aufgefallen. Wenn ich in die "Suchzelle" B1 eine Nummer eingebe, die in der Liste nicht enthalten ist, so zeigt er trotzdem alle Werte an. Eigentlich sollte er dann gar keine Ergebnisse anzeigen.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i, k As String
Dim ArrWerte As Variant
Dim n As Long
If Target.Address = "$B$1" Then
 With ListObjects("Tabelle1")
   k = Range("B1").Text
   ArrWerte = .ListColumns(4).DataBodyRange
   For n = 1 To UBound(ArrWerte, 1)
     If InStr(1, ArrWerte(n, 1), k, 1) Then i = i & " " & ArrWerte(n, 1)
   Next n
   If i <> "" Then
     ArrWerte = Split(Mid(i, 2))
     ListObjects("Tabelle1").Range.AutoFilter Field:=4, Criteria1:=ArrWerte, Operator:=xlFilterValues
   End If
End With
End If
End Sub
Hi

Um die gewünschte Funktion ergänzt. 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i, k As String
Dim ArrWerte As Variant
Dim n As Long
If Target.Address = "$B$1" Then
 With ListObjects("Tabelle1")
   k = Range("B1").Text
   ArrWerte = .ListColumns(4).DataBodyRange
   For n = 1 To UBound(ArrWerte, 1)
     If InStr(1, ArrWerte(n, 1), k, 1) = 1 Then i = i & " " & ArrWerte(n, 1)
   Next n
   If i <> "" Then
     ArrWerte = Split(Mid(i, 2))
     ListObjects("Tabelle1").Range.AutoFilter Field:=4, Criteria1:=ArrWerte, Operator:=xlFilterValues
   Else
     ListObjects("Tabelle1").Range.AutoFilter Field:=4, Criteria1:="", Operator:=xlFilterValues
   End If
End With
End If
End Sub
(B1 Markieren und entf Taste drücken -> blendet alle Nummern wieder ein.)

Gruß Elex
Das klappt ohne Probleme:) Vielen Dank!
Seiten: 1 2