Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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)
Antworten 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
Antworten Top
#13
Das klappt ohne Probleme:) Vielen Dank!
Antworten Top


Gehe zu:


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