Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1280to1284
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-Autofilter mit Kriteriumsarray

VBA-Autofilter mit Kriteriumsarray
10.10.2012 09:48:24
{Boris}
Moin zusammen,
mit folgender Codezeile kann ich nach x-beliebig vielen Begriffen gleichzeitig in Spalte A filtern:
Range("A1:A100").AutoFilter Field:=1, Criteria1:=Array( _
"Hund", "Katze", "Maus", "Baum"), Operator:=xlFilterValues
Jetzt wollte ich das Selbe mit "enthält" machen, muss aber feststellen, dass das nur funktioniert, wenn das Array maximal 2 Einträge enthält.
Es funktoniert also:
Range("A1:A100").AutoFilter Field:=1, Criteria1:=Array( _
"*un*", "*tz*"), Operator:=xlFilterValues
Es funktioniert nicht mit einem oder mehreren weiteren Kriterien:
Range("A1:A100").AutoFilter Field:=1, Criteria1:=Array( _
"*un*", "*tz*", "*au*"), Operator:=xlFilterValues
Damit wird dann gar kein Filterergebnis mehr erzeugt.
Frage: Wie tickt Excel hier? Weshalb geht es nicht bzw. wie könnte es mit dem Autofilter gehen?
Ist ne Grundsatzfrage - ich brauche keine Alternativen.
Danke vorab und
VG, Boris

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Autofilter mit Kriteriumsarray
10.10.2012 10:30:17
Herbert
Hi Boris,
in dem Falle behelfe ich mir immer mit leeren Einträgen: Array("", "", "Hund", ...)
Servus

AW: VBA-Autofilter mit Kriteriumsarray
10.10.2012 10:34:00
{Boris}
Hi Herbert,
danke erstmal für Deine Antwort. Aber ich versteh noch nicht ganz, wie mich das zum Ziel führt, viele (also mehr als 2) Einträge gleichzeitig nach "enthält" zu filtern?
VG, Boris

AW: VBA-Autofilter mit Kriteriumsarray
10.10.2012 14:45:26
Herbert
Hi Boris,
bitte entschuldige meine blöde Antwort, ich hatte einfach zu oberflächlich Deinen Text gelesen.
Leider weiß ich hier keinen Rat. Aber ich hoffe, es findet sich noch jemand, der Dir helfen kann.
Servus

Wo sind die Excel-Gurus (Luc, Rudi, Max etc)?
10.10.2012 21:36:07
{Boris}
Hi Leute,
da ich Euch jetzt im Betreff habe, findet ihr Euch auch über die Suchfunktion ;-))
VG, Boris

Anzeige
AW: Wo sind die Excel-Gurus (Luc, Rudi, Max etc)?
11.10.2012 13:49:01
Rudi
Hallo Boris,
wenn ich's wüsste, hätt' ich's dir verraten. ;-)
Ich kann dir lediglich Alternativen bieten, die du nicht willst oder dir selbst erstellen könntest, wenn du wolltest.
Gruß
Rudi

AW: VBA-Autofilter mit Kriteriumsarray
10.10.2012 22:20:19
Christian
Hi Boris,
eine Lösung kann ich leider auch nicht bieten - alternativ advanced filter, VBA,... Aber ich weiß, das kannst du selber.
Zu deiner Frage "wie tickt Excel hier"
ich hab mal verschiedene Varianten durchgespielt und komme zu folgendem Schluss:
Der Autofilter versteht maximal 2 Filterkriterien und einen Operator - siehe VBA-Hilfe. Auch bei der manuellen Eingabe von Textfilter stehen hier nur zwei Felder zur Verfügung.
Für die Auswahlliste beim Standard-Autofilter (seit XL2007) hat MS offensichtlich entschieden, dass die gewählten Einträge per Array an Criteria-1 übergeben werden. Und Eintrag aus Liste wählen heißt dabei Vergleich von Strings/Werten ohne Interpretation von Wildcards.
Ob nun von MS gewollt oder nicht, wenn das Array nur 2 Einträge enthält, werden diese von Excel als Criteria-1 und Criteria-2 interpretiert und dann der Textfilter ausgeführt. Und dabei werden Wildcards wieder berücksichtigt.
Bei mehr als 2 Einträgen hast du IMHO keine Chance, denn dann wird das Array als Criteria-1 übergeben und Wildcards werden ignoriert.
Range("A1:A100").AutoFilter Field:=1, Criteria1:=Array( _
"*un*", "*tz*", "*au*"), Operator:=xlFilterValues
filtert also nach den kompletten Strings inkl. "*". Das Ergebnis ist "keine Übereinstimmung".
viele Grüße
Christian

Anzeige
Vielen Dank schonmal...
10.10.2012 22:28:46
{Boris}
Hi Christian,
danke für Deine Gedankengänge. Sie decken sich mit meinen - ich wollte diese nur vorab nicht kundtun, um höchstmögliche Objektivität zu gewährleisten (klingt jetzt vielleicht ein wenig komisch, ist aber definitiv so).
Ich stell die Frage dennoch mal weiterhin auf offen, wenngleich ich wenig Hoffnung habe, dass es da noch andere erhellende Antworten gibt.
Nochmal: Vielen Dank für`s ausführliche Testen!
VG, Boris

AW: Ein Fall für den anderen Filter
10.10.2012 23:17:37
Gerd
Hi Boris,
denn halt so:
Sub test3()
Range("C1:C4") = WorksheetFunction.Transpose(Array(Range("A1").Value, "*un*", "*tz*", "*au*"))
Range("A1:A100").AdvancedFilter xlFilterInPlace, Range("C1:C4"), , False
Range("C1:C4").Clear
End Sub
Gruß Gerd

Anzeige
Und genau darum...
10.10.2012 23:31:43
{Boris}
Hi Gerd,
...ging es mir ja eben nicht, weshalb ich auch schrieb:
Ist ne Grundsatzfrage - ich brauche keine Alternativen.
Mich interessiert halt das Verhalten bzw die "Denk"weise des Autofilters.
Danke dennoch für Dein Mitdenken!
VG, Boris

Hast du mal nachgeprüft, ob das tatsächlich ...
11.10.2012 06:50:44
Luc:-?
absenden

Hast du mal nachgeprüft, ob das tatsächlich ...
11.10.2012 07:17:50
Luc:-?
absenden

BT kommt am Nm - Hans testet! owT
11.10.2012 07:19:47
Luc:-?
absenden

Hast du mal nachgeprüft, ob das tatsächlich ...
11.10.2012 19:20:17
Luc:-?
…so ist, Christian,
und die beiden Filterbegriffe aus einem Datenfeld wirklich als 2 verschiedene Kriterien angelegt wdn? Wenn ja und es ist so, wirst du wohl richtig liegen und ich hätte dann (zumindest vorerst) auch keine andere Erklärung für dich, Boris,
obwohl das ja wirklich merkwürdig wäre → könnte also durchaus eine unbeabsichtigte Pgm-„Unschärfe“* sein (Selbstoptimierung?).
Naja, mich wundert bei xl12ff gar nichts mehr! Je weiter man bohrt, desto mehr Inkompatibilitäten zu früheren Vss treten zutage, ob das nun die Behandlung von mehrfarbig formatierten Texten durch ein überlagerndes BedingtFormat oder die Kennzeichnung fehlender bzw mehrfacher (Bedingt-)Formate oder die zusätzlichen Farben, die wohl einfach als zusätzliches System integriert wurden und dadurch entsprd VBA-Abfragen verkomplizieren, besonders bei der ohnehin schon kompliziert gewesenen ZellrahmenRegie (inkl BedingtRahmen), sind oder noch anderes.
Einiges mag ja der XML-Skin geschuldet sein, aber sicher wohl nicht alles. Glücklicherweise hat man die VZellenEffekte° (noch) nicht angetastet, obwohl (bzw weil) die in der xlHilfe gar nicht erwähnt wdn, was darauf schließen lässt, dass sie ebenfalls unbeabsichtigt sind.
* Dem mal ernsthaft auf den Grund zu gehen, dürfte wohl etwas dauern. Leider steht mir zZ auch keine frühere xlVs zV (HD-Crash), so dass ich (auch aus dem im anderen Thread gen Grd) ggw auch nicht prüfen kann, wie das vorher war.
° Eigentl sollte WF doch ein Befürworter derselben sein, denn sie erlauben auch einen eleganten Umgang mit einer bestimmten Kategorie „ergebnis-einwertiger“ MxFmln, die auf der Anwendung von XLM-Fktt (spez AUSWERTEN) in benannten Fmln basieren und nur bei Auswahl von mind 2 Zellen ein sinnvolles und richtiges Ergebnis liefern. ;-)

Gruß Luc :-?
Anzeige

164 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige