Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Echtzeitfilter in Zelle eingeben

Betrifft: Echtzeitfilter in Zelle eingeben von: Mirko F.
Geschrieben am: 01.10.2020 09:21:52

Hallo ich habe eine Liste.


In Spalte i oder vlt auch noch in anderen, vlt. auch nicht dirrekt danebenliegenden Spalten,

möchte ich ich die Werte ab Zeile 17 bis 500 oder so Echtzeitfiltern oder den Filter mit Eingabetaste abschicken.


Der Suchwert soll in i 16 eingetragen werden (Zeile i15 bis i1 sind alle belegt und können nicht verwendet werden.


Dabei ist wichtig, dass der Filter mit enthält ausgeführt wird. Am liebsten erst wenn 2 oder 3 Zeichen eingegeben wurden.- falls das möglich ist. Da wenn ich nur z.b. ein M eingebe, soll der nicht direkt rödeln.


Wenn ich die Zelle leere soll der Filter verschwinden.


Die anderen Spalten werden auch mit dem normalen Standardverfahren gefiltert - und sollte auch so bestehen bleiben.


Vielen Dank im Voraus.


Hatte schon einiges probiert uns rausgesucht aber funktioniert alles nicht.


vg

Betrifft: AW: ohne VBA wäre es ...
von: neopa C
Geschrieben am: 01.10.2020 09:34:35

Hallo Mirko,

... mit PowerQuery (Daten abrufen und transformieren) und Aktualisierungsbutton oder in "Echtzeit" mit einer Formellösung realisierbar. Dies jedoch jeweils als Ergebnis in einem separaten Tabellenblatt.

Gruß Werner
.. , - ...

Betrifft: AW: ohne VBA wäre es ...
von: Mirko F.
Geschrieben am: 01.10.2020 09:42:54

Hi Werner,

wie immer ging das sehr schnell.

Die Ergebnisse sollen auf keinen Fall in einer extra Tabelle.
Ich möchte mir ja eigentl. nur die Klicks Sparen
Bereich markieren,
Filter aktivieren,
Klick auf den Filter pfeil,
Textfilter,
enthält,

Das kann man natürlich aufzeichnen aber ich möchte das genau von der Eingabe in einer Zelle abhängig machen.

Powerquery ist zu umständlich. Dieser Filter soll jeder User nutzen können.

Hatte bisher einer Lösung gesehen:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next

If Target.Column = 9 And Target.Row = 16 Then
If Target.Value <> "" Then
Selection.AutoFilter Field:=8, Criteria1:=Range("i16").Value
Else
FilterAufheben
End If
End If
End Sub
Sub FilterAufheben()
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
End Sub Habe hier versucht, dass mit meinem aufgezeichneten Makro zu verbinden.
Bekomme es aber nicht hin.


Sub Makro1()
'
' Makro1 Makro
'
Range("I16").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.AutoFilter

ActiveSheet.ListObjects("Projektübersicht").Range.AutoFilter Field:=8, _
Criteria1:="=*Suchtext*", Operator:=xlAnd

End Sub Vielen Dank werner im Voraus.
Bist der Beste. Ich liebe diese Forum. Gibt nichts besseres.

vg

Betrifft: AW: genau das kann PQ auch ...
von: neopa C
Geschrieben am: 01.10.2020 09:53:07

Hallo Mirko,

... Du musst es nur einmal richtig definieren, dann muss der User lediglich den Inhalt der Filterzelle ändern und den Aktualisierungsbutton betätigen
Und bei Deinen Datenmengen käme mE wahrscheinlich sogar eine Formellösung in Frage, die dann eine Echtzeitlösung wäre und z.B. mit Hilfsspaltenlösung auch noch ausreichend schnell sein dürfte.

Gruß Werner
.. , - ...

Betrifft: AW: genau das kann PQ auch ...
von: Mirko F.
Geschrieben am: 01.10.2020 10:35:40

Ja haste denn da was?
Extra ein Button Drücken finde ich nicht so gut.
Deshalb hatte ich ja Worksheet_Change_.....

vg

Betrifft: AW: hierzu ...
von: neopa C
Geschrieben am: 01.10.2020 11:43:06

Hallo Mirko,

... mit VBA-Lösungen beschäftige ich mich nicht, das können andere viel besser. Wenn es Dir nur um eine solch geht, solltest Du im Betreff Deiner Folgeantwort schreiben: VBA-Lösung gesucht und den thread auf offen setzen.

Zu einer ähnlichen PQ-Lösung sieh mal hier: http://www.excel-ist-sexy.de/pq-datenliste-als-filter-kriterium-verwenden/

(M)eine Formellösung kann ich Dir mangels Beispieldatei nicht aufzeigen.

Gruß Werner
.. , - ...

Betrifft: AW: hierzu ...
von: Mirko F.
Geschrieben am: 01.10.2020 12:07:38

Um die Lösung sehen zu können brauche in ein pw.
haste daS?

Betrifft: AW: ja, der Preis dafür war es mir auch wert owT
von: neopa C
Geschrieben am: 01.10.2020 12:38:21

Gruß Werner
.. , - ...

Betrifft: AW: ja, der Preis dafür war es mir auch wert owT
von: Mirko F.
Geschrieben am: 01.10.2020 12:49:43

Ok,

die Antwort verstehe ich jetzt nicht.

anbei mal eine Beispieldatei für deine PQ Lösung.

https://www.herber.de/bbs/user/140568.xlsx

Betrifft: AW: ja, der Preis dafür war es mir auch wert owT
von: Mirko F.
Geschrieben am: 01.10.2020 12:50:24

Bitte um VBA Lösung

Betrifft: AW: VBA-Lösung gesucht, thread offen owT
von: neopa C
Geschrieben am: 01.10.2020 12:55:42

Gruß Werner
.. , - ...

Betrifft: neopa meinte damit, dass er den geforderten ...
von: lupo1
Geschrieben am: 01.10.2020 14:14:35

... Preis für die Lösung (Password) - genau wie Du - selbstredend auch bezahlen würde.

Es ist nicht seine Lösung. Er hat nur darauf verlinkt.

Betrifft: AW: Automatisch mit VBA.
von: Daniel
Geschrieben am: 01.10.2020 13:03:18

Hi
wenn schon während der Eingabe gefiltert werden soll, dann lege dir eine ActiveX-TextBox in die Zelle I16 und steuere den Autofilter mit dem Change_Event der Textboxt.
Private Sub TextBox1_Change()
If Len(TextBox1.Text) < 3 Then
    Range("A16:Z500").AutoFilter field:=9
Else
    Range("A16:z500").AutoFilter field:=9, Criteria1:="*" & TextBox1.Text & "*"
End If
End Sub
Gruß Daniel

Betrifft: AW: Automatisch mit VBA.
von: Mirko F.
Geschrieben am: 01.10.2020 14:03:23

Hi Daniel. Danke für deine Antwort.
Aber der Code funktioniert nicht richtig.

Möchte ab Spalte 17 alles Filtern.

anbei die datei

https://www.herber.de/bbs/user/140570.xlsm

Betrifft: Du meinst Zeile 17-oder? kwT
von: Helmut
Geschrieben am: 01.10.2020 14:48:31



Betrifft: AW: Du meinst Zeile 17-oder? kwT
von: Mirko F.
Geschrieben am: 01.10.2020 14:54:49

ja genau :) ab Zelle i17

Betrifft: AW: Du meinst Zeile 17-oder? kwT
von: Daniel
Geschrieben am: 01.10.2020 16:07:44

Hi
wenn man den Zellbereich für den Autofilter angibt, muss man beachten dass die erste Zeile immer die Überschriftenzeile ist, welche die DropDowns enthält und welche immer sichtbar ist
wenn deine Daten ab Zeile 17 beginnen, muss man den Autofilter ab Zeile 16 einrichten.

den vorhandenen Autofilter solltest du löschen.

Gruß Daniel

Betrifft: AW: Du meinst Zeile 17-oder? kwT
von: Mirko F.
Geschrieben am: 02.10.2020 11:49:01

Hi Daniel,

habe ich alles gemacht.

mit dem Code
Private Sub TextBoxTeam_Change()
If Len(TextBoxTeam.Text) < 3 Then
    Range("a16:z510").AutoFilter Field:=10
Else
    Range("a16:z510").AutoFilter Field:=10, Criteria1:="*" & TextBoxTeam.Text & "*"
End If
End Sub

Feld 10 Weil jetzt das AktivX Element in Spalte K ist (Box habe ich unbekannt in s.o.)
Den autofilter habe ich zuvor überalle gelöscht.

Der hänt sich immer an dem Range auf....

Betrifft: AW: Du meinst Zeile 17-oder? kwT
von: Mirko F.
Geschrieben am: 02.10.2020 12:02:42

Hi,

habe jetzt einfach nur
Private Sub TextBoxTeam_Change()
ActiveSheet.ListObjects("Projektübersicht").Range.AutoFilter Field:=10, Criteria1:="*" &  _
TextBoxTeam.Text & "*", Operator:=xlAnd
End Sub
und das Funktioniert.

Danke

Betrifft: AW: Du meinst Zeile 17-oder? kwT
von: Daniel
Geschrieben am: 02.10.2020 14:18:25

Dass du den richtigen Zellbereich angeben musst, ist schon irgendwie logisch.

Würdest du bitte nochmal kontrollieren, ob deine Beidspieldatei das Listobjekt "Projektübersicht" enthalten hat und wenn nein, dann Frage dich bitte, woher wir wissen sollen, dass du mit sowas arbeitet.