Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1676to1680
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

Multifilter für (mind) 3 Begriffe

Multifilter für (mind) 3 Begriffe
21.02.2019 09:46:03
Werner
Hallo Forumsmitglieder,
bei mir gibt es schon wieder ein Problem:
Ich lade mir den Inhalt einer Report-File in ein (neues) Tabellenblatt. Zeile 1 reserviere ich für die Überschrift. Die Daten aus dem Report sind dann ab Zeile 2.
Nun möchte ich mit einem Filter Zeilen mit bestimmten Begriffen ausfiltern; derzeit sind es 3 Begriffe.
Im Internet habe ich dazu mehrere Beispiele gefunden, aber keines funktioniert.
Ich habe folgenden Code zum Testen zusammengestellt:
Sub Multifilter()
Cells(1, 1).Value = "Überschrift"
Cells(2, 1).Value = "Karlheinz"
Cells(3, 1).Value = "Hans-Dieter"
Cells(4, 1).Value = "Eva-Maria"
Cells(5, 1).Value = "Heinz-Wilhelm"
Cells(6, 1).Value = "Wilhelm"
Cells(7, 1).Value = "Otto"
Range(Cells(1, 1), Cells(7, 1)).AutoFilter _
Field:=1, Criteria1:=Array("Karl*", "*er*", "*o"), Operator:=xlOr
End Sub
In den Beispielen wird immer "Operator:=xlFilterValues" verwendet. Doch damit wird mir keine Zeile angezeigt.
Was mir mit obigen Code angezeigt wird, ist "nur" die Zeile mit "Otto". Vertausche ich den 2. und den 3. Filter-Begriff, so wird mir "nur" "Hans-Dieter" angezeigt. Auch mit der Option "XlAnd" erhalte ich kein anderes Ergebnis.
Frage: was ist an meinem Code falsch?
Ich habe Excel 2019 im Einsatz!
Danke im Voraus und Gruß
Werner

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Multifilter für (mind) 3 Begriffe
21.02.2019 10:06:30
Nepumuk
Hallo Werner,
wenn du mit einem Filterarray arbeitest darf das keine Joker-Zeichen enthalten sondern nur Werte die auch in der Spalte vorkommen. Willst du mit Joker-Zeichen arbeiten kannst du nur zwei Kriterien (Criteria1 / Criteria2) verwenden.
Gruß
Nepumuk
AW: Multifilter für (mind) 3 Begriffe
21.02.2019 13:03:19
Werner
Hallo Nepumuk,
Tatsache bei meinem oben genannten Beispiel ist, dass durch den "*o" die Zeile mit "Otto" sichtbar wird.
Nun habe ich die 3 Begriffe wie folgt ausgetauscht:
Array("Karlheinz", "Otto", "Wilhelm")
Auch in dieser Version wird mir nur die Zeile angezeigt, die sich aus dem letzten im Array genannten Begriff ergibt: es ist "Wilhelm".
Dann habe ich im Array Otto und Wilhelm getauscht:
Array("Karlheinz", "Wilhelm", "Otto")
Jetzt wird mir nur "Otto" angezeigt.
Gruß Werner
Anzeige
AW: Multifilter für (mind) 3 Begriffe
21.02.2019 13:35:51
Engelchen
Hallo Werner,
ich habe gerade mal mit dem Makrorekorder aufgezeichnet. Versuche mal
Operator:=xlFilterValues
zu verwenden, dann sollten alle drei Namen aus dem Array angezeigt werden.
Gruß!
Engelchen
AW: Multifilter für (mind) 3 Begriffe
21.02.2019 16:04:33
Werner
Hallo Engelchen und vielen Dank.
Ich habe Deinen Vorschlag "Operator:=xlFilterValues" probiert und es hat funktioniert.
Mein Problem ist aber, dass ich mit nicht-generischen Suchbegriffen nicht zum Ziel komme. In den Zeilen, die ich ausfiltern möchte, stecken sowohl feste Texte als auch variable Namen. Und dann müsste ich für jede Möglichkeit einen eigenen Filter vorsehen. Das ist nicht machbar.
Ich habe aber gerade in meinem Posteingang gesehen, dass noch eine weitere Antwort vorliegt.
Gruß
Werner
Anzeige
AW: Multifilter für (mind) 3 Begriffe
21.02.2019 13:47:31
Daniel
HI
ab Excel 2007 so:
Sub Multifilter()
Dim txt As String
Dim arr, a
Cells(1, 1).Value = "Überschrift"
Cells(2, 1).Value = "Karlheinz"
Cells(3, 1).Value = "Hans-Dieter"
Cells(4, 1).Value = "Eva-Maria"
Cells(5, 1).Value = "Heinz-Wilhelm"
Cells(6, 1).Value = "Wilhelm"
Cells(7, 1).Value = "Otto"
arr = Range(Cells(2, 1), Cells(1, 1).End(xlDown)).Value
For Each a In arr
If a Like "Karl*" Or a Like "*er*" Or a Like "*o" Then txt = txt & "|" & a
Next
arr = Split(Mid(txt, 2), "|")
Range(Cells(1, 1), Cells(7, 1)).AutoFilter _
Field:=1, Criteria1:=arr, Operator:=xlFilterValues
End Sub
du musst ein eindimensionales Array erstellen, welches alle anzuzeigenden Werte in vollständiger Schreibweise enthält (keine Joker zulässig).
Dieses Array mit allen WErten gibst du dann als Criteria1 an und filterst mit dem Operator xlfiltervalues.
Gruß Daniel
Anzeige
AW: Multifilter für (mind) 3 Begriffe
21.02.2019 16:19:12
Werner
Hallo Daniel,
super! Habe Deinen Code getestet und ich bin überrascht, dass damit genau das Ergebnis erzielt wird, welches ich mit meinem Ursprungscode erreichen wollte. Und den Code habe ich auch zu 100 Prozent verstanden.
Vielen Dank. Und schon wieder ein Problem weniger.
Gruß
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige