Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1508to1512
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Excel Autofilter Filterkriterium auslesen

VBA Excel Autofilter Filterkriterium auslesen
30.08.2016 15:17:41
AHK
Liebe Forumsmitglieder,
ich habe eine Frage bezüglich des Autofilters in Excel.
Ich habe In Spalte A die Bezeichnung eines Messwerts, in Spalte B die zugehörige Messgröße.
Ich filtere Spalte A z.B. mit "DG*". Der Filter zeigt mir alle Messungen an die mit der Bezeichnung "DG" beginnen. Siehe--> https://www.herber.de/bbs/user/107903.xlsm Achtung der Filter ist mit DG* bereits gesetzt.
Nun möchte ich per VBA das Filterkriterium auslesen (d.h. den Filterbegriff "DG*"). Diesen möchte ich in eine Variable ablegen. Diese Variable, möchte ich später in der Überschrift einer Grafik verwenden, um die Grafik eindeutig den Filterkriterien zuordnen zu können.
Habe schon viel im Forum gestöbert, aber noch nicht das richtige gefunden. Alle Tipps basieren auf der Rückmeldung mittels AutoFilter.Filters(1).Criteria1
Dieses liefert mir aber quasi ja schon das konkrete Ergebnis des Filters.
Folgendes quick-and-dirty MAKRO liefert mir z.B. crit = "DG004". Ich benötige aber die originäre Eingabe im Filter "DG*".
Sub Makro1()
crit = Worksheets("Tabelle1").AutoFilter.Filters(1).Criteria1
End Sub
Hat jemand einen Tipp, wie ich den originären Filterbegriff in eine Variable ablegen kann?
Vielen Dank.
Viele Grüße,
AHK

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Eine Vermutung...
30.08.2016 16:03:51
Michael
Hallo AHK!
Aus meiner Sicht ist das nicht möglich, war mir so aber auch nicht bewusst. Ich hab Deinen Vorgang mal kurz per Makrorecorder aufgezeichnet... auch der setzt als Kriterium gleich das Ergebnis der Suche, nicht das in der Filtersuche eingegebene Kriterium (zB "DG*").
Wenn Du Filterergebnisse zusammen mit den Suchkriterien dokumentieren willst, würde ich hier auf eine Variante mit Spezialfilter (statt AutoFilter) setzen. Nachdem im Spezialfilter die Kriterien in einem eigenen Blattbereich definiert werden, kannst Du sie von dort auch problemlos auslesen (und in einer Variablen speichern etc.). Das kann in Kombination mit VBA genauso dynamisch und praktisch ablaufen, wie ein Autofilter.
LG
Michael
Anzeige
AW: VBA Excel Autofilter Filterkriterium auslesen
30.08.2016 17:33:52
KlausF
Hallo,
aus meiner Sammlung, probier mal:
Public Function ShowFilter(rng As Range)
'UDF that displays the filter criteria.
'posted by Tom Ogilvy 1/17/02
'To make it respond to a filter change, tie it to the subtotal command.
'=showfilter(B2)&CHAR(SUBTOTAL(9,B3)*0+32)
'So the above would show the criteria for column B
Dim filt As Filter
Dim sCrit1 As String
Dim sCrit2 As String
Dim sop As String
Dim lngOp As Long
Dim lngOff As Long
Dim frng As Range
Dim sh As Worksheet
Set sh = rng.Parent
Application.Volatile
If sh.FilterMode = False Then
ShowFilter = "Alle"
Exit Function
End If
Set frng = sh.AutoFilter.Range
If Intersect(rng.EntireColumn, frng) Is Nothing Then
ShowFilter = CVErr(xlErrRef)
Else
lngOff = rng.Column - frng.Columns(1).Column + 1
If Not sh.AutoFilter.Filters(lngOff).On Then
ShowFilter = "No Conditions"
Else
Set filt = sh.AutoFilter.Filters(lngOff)
On Error Resume Next
sCrit1 = filt.Criteria1
sCrit2 = filt.Criteria2
lngOp = filt.Operator
If lngOp = xlAnd Then
sop = " And "
ElseIf lngOp = xlOr Then
sop = " or "
Else
sop = ""
End If
ShowFilter = sCrit1 & sop & sCrit2
End If
End If
End Function
Gruß
Klaus
Anzeige
Nein, das ist auch nicht was der TE sucht...
30.08.2016 18:28:11
Michael
Klaus,
...so lässig diese, Deine UDF auch ist - aber auch die bringt als Kriterium das entsprechende Filterergebnis und nicht den Eingabewert in das Filter-Suchfeld:
Userbild
Userbild
Userbild
Deshalb ich ähnliches von mir auch nicht vorgeschlagen... Ich meine das geht nicht.
LG und schönen Abend
Michael
Anzeige
Bei mir schon
30.08.2016 19:55:13
KlausF
Hallo Michael,
bei mir (Mac, Excel 2003) gibt Dein exakt nachgestelltes Beispiel als Ergebnis:
=Da*
Ich habe im Filter unter "Benutzerdefiniert" bei "Beginnt mit" Da eingegeben ...
Gruß
Klaus
AW: Bei mir schon
30.08.2016 21:47:22
AHK
Hallo Ihr Zwei,
leider klappt es mit der UDF bei mir irgendwie nicht.
Code in ein Modul kopiert und gespeichert. Modul / public function wird korrekt ausgeführt. Kein Problem.
Ich hatte zunächst etwas Probleme mit der Formel in der Zelle:
=showfilter(B2)&CHAR(SUBTOTAL(9,B3)*0+32)
Ich habe die deutsche Version und da hat Excel mit den Funktionsnamen auf Englisch Probleme. Zusätzlich musste ich in der Klammer bei SUBTOTAL ein Semikolon anstelle Komma setzen.
Meine an die Deutsche Version und auf Filter Spalte A angepasste Formel:
=showfilter(A2)&ZEICHEN(TEILERGEBNIS(9;A3)*0+32)
Dies liefert mir allerdings als Ergebnis: = DG004 or =DG005
Also nicht den von mir original eingegeben Filter "DG*"
Habe ich einen Fehler in der "übersetzten" Formel?

Was mich zudem wundert, wenn ich z.B. nach "AB*" filtere bleibt die "showfilter"-Zelle leer. Es wird auch kein Fehler angezeigt. Ich habe in meiner Tabelle noch einen Wert DG006 ergänzt und erneut mit "DG*" gefiltert. Auch hier bleibt die Zelle nun leer ?!?
@Klaus:
Was zeigt Dir denn die UDF an, wenn Du in Michaels Beispiel nach "Do*" filterst?
Da ist ja auch nur ein Wert mit Da* enthalten, nämlich Dada. Zeigt er Dir wirklich "Da*" oder "Dada" ?
Ich würde mich riesig freuen, wenn es damit klappen würde.
Habe ich irgendwo einen Fehler gemacht?
Anbei die Datei mit UDF: https://www.herber.de/bbs/user/107912.xlsm
Viele Grüße,
AHK
Anzeige
AW: Bei mir schon
30.08.2016 22:04:31
KlausF
Hi,
bei mir zeigt die UDF dann =*Do**
und der gefilterte Wert ist korrekt Doro
Gefiltert ist unter Benutzerdefiniert mit der Option Enthält
Gruß
Klaus
AW: Bei mir schon
30.08.2016 22:24:51
KlausF
Hi.
Habe mal Deine Datei runter geladen. Das gleiche Ergebnis.
Die Formel lautet aber nur =showfilter(A2) und die
Filterung muss nur als AB ohne Sternchen eingegeben werden.
Der Stern ist ja schon in der Option "Enthält" eingebaut.
Wenn's jetzt immer noch nicht klappt weis ich auch nichts mehr.
Ich bekomme damit jedenfalls die ersten 3 Zeilen gefiltert
und die UDF wirft =AB* bzw =*AB* aus je nach Option "Beginnt mit"
oder "Enthält" ...
Gruß
Klaus
Anzeige
AW: Bei mir schon
30.08.2016 22:06:41
Andre
Hallo Klaus,
erstmal Entschuldigung, dass ich mit Pseudonym gepostet habe. Habe ich erst grad in den Forumsregeln gelesen. Ich heiße Andre.
Ich hatte den entscheidenden Hinweis von Dir übersehen!
Wenn ich dies im benutzerdefinierten Filter wie von Dir vorgeschlagen eingebe, dann klappt dies. Ich erhalte als Ergebnis =DG**.
Gebe ich dies in Excel hingegen direkt im Suchfeld des Filters ein, dann klappt dies nicht. Das wäre natürlich wünschenswert. Falls Du eine Idee hast, wie man es auch damit hinbekommt, wäre ich froh.
Hiermit geht es nicht:
Userbild
Aber erstmal hilft mir der benutzerdefinierte Filter riesig.
Viele Grüße,
Andre
Anzeige
Antwort hat sich überschnitten
30.08.2016 22:36:39
KlausF
Hallo Andre,
vergiss die letzte Antwort - hat sich mit Deiner neuen Frage überschnitten.
Dein Wunsch kann natürlich nicht klappen weil diese UDF uralt ist und es
seinerzeit diese neue Art der Filterung noch gar nicht gab.
Ich kann mal in meinem Archiv wühlen ob sich noch eine neuere UDF
finden lässt, habe aber wenig Hoffnung. Ansonsten melde ich mich noch einmal.
Gruß
Klaus
Ich sag ja, das geht nicht...
31.08.2016 00:58:09
Michael
Hi Ihr beiden!
Die UDF von Klaus ist spitzenmäßig, aber ich habe es eben von Anfang an so verstanden, dass es um eine Filterung über das Such-/Eingabefeld geht - und das lässt sich nicht anders auslesen; ein starkes Indiz mE dafür ist, dass auch der Makrorekorder hier nichts besseres zustande bringt.
Aber parallel zu der von mir vorgeschlagenen Routine wäre Klaus' Vorgehensweise über den Benutzerdefinierten Filter evtl. ja auch schon ein brauchbarer Workaround...
Gute Nacht Ihr beiden!
LG
Michael
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge