372 Aufrufe
Gefragt in Tabellenkalkulation von jonesm Mitglied (191 Punkte)
Hallo,
ich möchte in einer Exceltabelle (Datenbereich A10:T2500) in der Zelle E2 und E3 zwei
Eingabefelder definieren, die dann mittels Makro den Texfilter mit "enthält" und "enthält nicht"
aktivieren.

Also wenn ich in E2 z.B. eintrage "Werkeug" und die Eingabetaste drücke, soll die Tabelle nur noch
die Zeilen angezeigt werden, die in der Spalte E in der entsprechenden Zelle "Werkzeug" enthalten.
Dies wäre die Funktion mittels Autofilter - Textfilter - enthält = "Werkzeug".

In E3 sollen die Ausschlussbegriffe stehen, also enthält nicht = "Hand". Auch hier soll der Filter
automatisch beim Verlassen der Zelle aktualisiert werden.

Es wäre schön, wenn mir jemand helfen könnte.

VG Thomas

5 Antworten

0 Punkte
Beantwortet von
Hallo Thomas .-)

Mal ein Anfang,in Wechselwirkung!
Spalten A(Kreterium E2) + Spalte B(Kreterium E3) werden gefiltert
Gegebenenfalls anpassen

Oder wolltest du 2 Kreterien auf eine Spalte!

Gruss Nighty




Sub Autofilter()
If Worksheets("Tabelle1").AutoFilterMode = False Then
Worksheets("Tabelle1").Range("A1:B1").Autofilter
Worksheets("Tabelle1").Range("A1").Autofilter Field:=1, Criteria1:=Range("E2")
Worksheets("Tabelle1").Range("B1").Autofilter Field:=2, Criteria1:="<>" & Range("E3")
Else
Worksheets("Tabelle1").Range("A1:B1").Autofilter
End If
End Sub
0 Punkte
Beantwortet von jonesm Mitglied (191 Punkte)
Hallo Nighty,

erst einmal vielen Dank!

Ja, es sollten nach zwei Kriterien auf der Spalte E gefiltert werden.
1. Kriterium ENTHÄLT = Werkzeug UND
2. Kriterium ENTHÄLT NICHT = hand

Das Ergebnis ist ein Filter, der alle Einträge mit "*werkzeug*"enthält, aber keine mit z.B.
"*handgeführt*.

1. Kriterium enthält steht in E3, das 2. enthält nicht in E4.

VG Thomas
0 Punkte
Beantwortet von
Hallo Thomas .-)

Probiermal!

Gruss Nighty

Operatoren ,probier dich mal!

Sub Autofilter()
If Worksheets("Tabelle1").AutoFilterMode = False Then
Worksheets("Tabelle1").Range("E1").Autofilter
Worksheets("Tabelle1").Range("E1").Autofilter Field:=1, Criteria1:=Range("E2"), Operator:=xlAnd, Criteria2:=Range("E3")
Else
Worksheets("Tabelle1").Range("A1:B1").Autofilter
End If
End Sub


Einige Operatoren und dessen Schreibweise

ungleich
"<>" & Range("E2")

größer
">" & Range("E2")

kleiner
"<" & Range("E2")

gleich erübrigt sich durch die Grundeinstellung

gleich oder größer
"=>" & Range("E2")

gleich oder kleiner
"=<" & Range("E2")

Kommst du damit klar?
0 Punkte
Beantwortet von
Hallo Thomas .-)

Hier sollte E1 stehen,statt A1:B1
Worksheets("Tabelle1").Range("A1:B1").Autofilter


Gruss Nighty
0 Punkte
Beantwortet von jonesm Mitglied (191 Punkte)
Hallo Nighty,

vielen Dank. Hast mir weiter geholfen.

Gelöst habe ich es jetzt so:


Sub suche()

If Worksheets("Dokumente").AutoFilterMode = False Then
Worksheets("Dokumente").Range("E6").Autofilter
End If

If Range("e4") = "" Then
Worksheets("Dokumente").Range("E6").Autofilter Field:=5, _
Criteria1:="*" & Range("E3") & "*", Operator:=xlAnd, Criteria2:="<>"
Else
ActiveSheet.Range("$A$6:$N$1263").Autofilter Field:=5, _
Criteria1:="*" & Range("E3") & "*", Operator:=xlAnd, _
Criteria2:="<>*" & Range("E4") & "*"
End If

If Range("e3") = "" Then
If Range("e4") = "" Then
ActiveSheet.Range("$A$6:$N$1263").Autofilter Field:=5
Else
ActiveSheet.Range("$A$6:$N$1263").Autofilter Field:=5, _
Criteria1:="<>*" & Range("e4") & "*", Operator:=xlAnd
End If
End If

End Sub


Die Abfrage mit
If Range("e3") = ""
war nötig, weil Excel mir sonst ein * in den Filter eingesetzt hat. komisch...

Naja, vielen Dank & schönes WE.
Thomas
...