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

AutoFilter mehrere Kriterien ausfiltern

AutoFilter mehrere Kriterien ausfiltern
12.04.2021 08:05:26
Kytyzow
Hallo zusammen,
mein Ziel ist es bei einer Tabelle mit der AutoFilter Funktion mehrere Kriterien abzuwählen. Dafür habe ich folgende Anleitung verwendet.
https://www.herber.de/forum/archiv/1412to1416/1415996_AutoFilter_mehrere_Kriterien_ausfiltern.html
Die Anleitung geschreibt wie statische Werte abgewählt werden, sprich die Zahl 7 zum Beispiel. In meinem Fall möchte ich alle Werte, welche mit einer 7 anfangen ausfiltern. Leider funktioniert das Einfügen von Wildcards nicht, also Case "*7" funktioniert nicht.
Sicherlich gibt es auch hierfür eine Lösung, kann hier jemand aushelfen?
Viele Grüße
Kytyzow

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: AutoFilter mehrere Kriterien ausfiltern
12.04.2021 08:48:04
UweD
Hallo
wie sieht denn DEIN Makro aus?
das * gehört hinter die 7
so in Etwa als Beispiel:

ActiveSheet.Range("$C:$C").AutoFilter Field:=1, Criteria1:="=7*"
LG UweD
AW: AutoFilter mehrere Kriterien ausfiltern
12.04.2021 09:09:22
Kytyzow
Mein Makro sieht wie das in der Anleitung, bloß an meine Spalten angepasst und um eine Arbeitsblattkopie erweitert.
Sub Test()
Dim arr1, arr2
Dim Zaehler As Long
' Spalte welche zu filtern ist auswählen
Range("A1").Select
arr1 = Range(Selection, Selection.End(xlDown)).Value
ReDim arr2(1 To UBound(arr1, 1)) As String
For Zaehler = 2 To UBound(arr1)
Select Case arr1(Zaehler, 1)
Case "=7*", "=8*", "=9*"
Case Else
arr2(Zaehler) = CStr(arr1(Zaehler, 1))
End Select
Next
' Filtern nach Array und Bereich auswählen
Cells(1, 1).CurrentRegion.AutoFilter Field:=1, Criteria1:=arr2, Operator:=xlFilterValues
Cells(1, 1).CurrentRegion.Select
' Filterergbenis kopieren, Arbeitsblatt ertellen, Filterergebnis einfügen
Selection.Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste
End Sub
Leider funktioniert das Case "=7*" nicht. Liegt es vielleicht am Array?
Anzeige
AW: AutoFilter mehrere Kriterien ausfiltern
12.04.2021 09:28:16
Daniel
Hi
Das Filterarray muss jeden Wert, der angezeigt werden soll, mindestens 1x vollständig enthalten.
Mit Jokern kann das FilterArray nicht arbeiten.
Gruß Daniel
AW: AutoFilter mehrere Kriterien ausfiltern
12.04.2021 14:23:26
Kytyzow
Das aktuelle Makro muss in der Form nicht bestehen, damit will ich sagen - Wie kann mein Anliegen sonst gelöst werden?
AW: AutoFilter mehrere Kriterien ausfiltern
12.04.2021 16:20:09
Daniel
Hi
im Prinzip so:
dim arrFilter
dim strFilter as string
dim Wert
'--- 1. zu filternde Werte in einem String sammeln
for each wert in Cells(1, 1).CurrentRegion.Columns(1)
if CStr(wert) like "[789]*" then strFilter = strFilter & Wert & vbLf
next
'--- 2. aus String das Filterarray erstellen
arrFilter = split(mid(strFilter, Len(vbLF) + 1), vbLF)
Cells(1, 1).CurrentRegion.AutoFilter Field:=1, Criteria1:=arrFilter, Operator:=xlFilterValues

Gruß Daniel
Anzeige
AW: AutoFilter mehrere Kriterien ausfiltern
12.04.2021 14:19:51
Kytyzow
Mein Makro sieht wie das in der Anleitung, bloß an meine Spalten angepasst und um eine Arbeitsblattkopie erweitert.
Sub Test()
Dim arr1, arr2
Dim Zaehler As Long
' Spalte welche zu filtern ist auswählen
Range("A1").Select
arr1 = Range(Selection, Selection.End(xlDown)).Value
ReDim arr2(1 To UBound(arr1, 1)) As String
For Zaehler = 2 To UBound(arr1)
Select Case arr1(Zaehler, 1)
Case "=7*", "=8*", "=9*"
Case Else
arr2(Zaehler) = CStr(arr1(Zaehler, 1))
End Select
Next
' Filtern nach Array und Bereich auswählen
Cells(1, 1).CurrentRegion.AutoFilter Field:=1, Criteria1:=arr2, Operator:=xlFilterValues
Cells(1, 1).CurrentRegion.Select
' Filterergbenis kopieren, Arbeitsblatt ertellen, Filterergebnis einfügen
Selection.Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste
End Sub
Leider funktioniert das Case "=7*" nicht. Liegt es vielleicht am Array?
Anzeige
AW: AutoFilter mehrere Kriterien ausfiltern
13.04.2021 13:32:04
Beate
Hallo Kytyzow,
hier mal eine Makrofreie Lösung mit Hilfsspalte und Autofilter. Mein Beispiel sieht 3 Kriterien in B2:B4 vor, die du dort auch ändern kannst.
Die Formel aus Zelle B8 kannst du runterkopieren. Und dann die Hilfsspalte nach 1 ausfiltern:
 AB
1 Filter: beginnt mit:
2Kriterium1:7
3Kriterium2:8
4Kriterium3:9
5  
6  
7WertHilfspalte
816050
97871
1018340
1130
1284971
133590
149571
157881
165980
1711570

Formeln der Tabelle
ZelleFormel
B8=SUMMENPRODUKT((LINKS(A8;1)*1=$B$2)+((LINKS(A8;1)*1=$B$3)+(LINKS(A8;1)*1=$B$4)))

Freundliche Grüße,
Beate
Anzeige
AW: AutoFilter mehrere Kriterien ausfiltern
13.04.2021 13:35:43
Beate
Hallo Kytyzow,
hier mal eine Makrofreie Lösung mit Hilfsspalte und Autofilter. Mein Beispiel sieht 3 Kriterien in B2:B4 vor, die du dort auch ändern kannst.
Die Formel aus Zelle B8 kannst du runterkopieren. Und dann die Hilfsspalte nach 1 ausfiltern:
 AB
1 Filter: beginnt mit:
2Kriterium1:7
3Kriterium2:8
4Kriterium3:9
5  
6  
7WertHilfspalte
816050
97871
1018340
1130
1284971
133590
149571
157881
165980
1711570

Formeln der Tabelle
ZelleFormel
B8=SUMMENPRODUKT((LINKS(A8;1)*1=$B$2)+((LINKS(A8;1)*1=$B$3)+(LINKS(A8;1)*1=$B$4)))

Freundliche Grüße,
Beate
Anzeige
AW: welche freudige Überraschung ...
13.04.2021 14:08:10
neopa
Hallo Beate,
... bei meinem ersten Blick heute ins HEF einen Beitrag von Dir zu lesen :-)
Das verleiht mir die Hoffnung. Dir/Euch geht es es gut bzw. wenigstens besser und Du hoffst und wünschst, wie wir alle auf bald etwas normalere Zeiten, als es die vergangenen Monate waren, auch wenn wir wohl noch zwei Monate starke Nerven brauchen.
Nun noch zu Deinem Formelvorschlag hier im thread. Den könnte man mit folgender Formel noch etwas vereinfachen:
=SUMMENPRODUKT(N(LINKS(A8;1)=B$2:B$4&""))
Gruß Werner
.. , - ...
AW: welche freudige Überraschung ...
13.04.2021 14:23:07
Beate
Hallo lieber Werner,
danke deiner Nachfrage - bin ein bisschen eingerostet in Excel und in der Forenbedienung (was man daran sieht, dass ich meine Antwort gleich doppelt hochgeladen habe). Natürlich ist deine Formel smarter, kann ich also nur empfehlen.
Falls der Fragesteller eine Makrolösung will, würde ich den Spezialfilter empfehlen, das geht dann auch direkt mit unbeschränkt vielen Kriterien.
Guckst Du: Spezialfilter (3) - Filtern mit Funkionen
Mal sehen, ob der Fragesteller noch am Ball ist, dann könnte ich die Lösung nachreichen.
Liebe Grüße auch an Birgit, haltet die Ohren steif und bleibt gesund,
Beate
Anzeige
AW: alternativ dazu bzw. VBA und Spezialfilter ...
13.04.2021 14:48:54
neopa
Hallo Beate,
... käme wohl evtl. auch noch eine PowerQuery Lösung in Betracht. Aber ich denke, dass der TE wohl kein weiteres Interesse an den verschiedenen Alternativen hat.
Gruß auch an Wolfgang
Werner
.. , - ...
AW: alternativ dazu bzw. VBA und Spezialfilter ...
14.04.2021 16:53:01
Kytyzow
Hallo zusammen,
im Endeffekt habe ich meine Aufgabe mit einem eigenen Makro gelöst. Ich filtere die Tabelle und lösche das angezeigte Filterergebnis. Ist sicherlich nicht die schönste Lösung. :)
' Anzahl der Zeilen bestimmen
Do Until IsEmpty(Cells(i, 1)) = True
ZeileMax = i
i = i + 1
Loop
ThisWorkbook.ActiveSheet.Cells(1, 1).CurrentRegion.AutoFilter Field:=1, Criteria1:="", Criteria2:="", Operator:=xlOr
Range("A2:A" & ZeileMax).SpecialCells(xlCellTypeVisible).EntireRow.Delete
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige