Tabelle über Suchfeld filtern
#11
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


Angehängte Dateien
.xlsm   Tabelle über Suchfeld filtern.xlsm (Größe: 17,9 KB / Downloads: 16)
Top
#12
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
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • ExcelNeuling99
Top
#13
Das klappt ohne Probleme:) Vielen Dank!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste