Excel VBA - AutoFilter richtig einstellen?


12.03.2020, 15:01

Das Problem liegt also quasi darin, dass der Filter zwar erstellt wird, aber nicht automatisch die Filter-Kriterien ausgewählt werden

3 Antworten

Hi,

Der Excel Autofilter ist ein bisschen zickig. Mehrere Filterkriterien müssen als Array übergeben werden, nicht als zusammengesetzter String.

Hier ein Lösungsvorschlag.

Sub Filtern()
Dim Criteria()
ReDim Criteria(1)
With Worksheets("Tabelle1")
    For i = 1 To .[A65536].End(xlUp).Row
        If .Cells(i, 1) = "x" Then
            Criteria(UBound(Criteria)) = "=" + CStr(.Cells(i, 2))
            ReDim Preserve Criteria(UBound(Criteria) + 1)
        End If
    Next i
End With
Dim Liste As Range
Set Liste = Worksheets("Tabelle2").Range("A1:B10") ' Habe in A1 und B1 Spaltenüberschriften ergänzt, um die Lesbarkeit zu verbessern
Liste.AutoFilter
Liste.AutoFilter Field:=1, Criteria1:=Criteria, Operator:=xlFilterValues
End Sub

Das Ergebnis, wenn in Tabelle1 "3" und "4" angewählt sind, sieht dann so aus:

Bild zum Beitrag

Ich hoffe, das hilft Dir und freue mich auf Feedback.

Gruß Hannes

Woher ich das weiß:eigene Erfahrung
 - (Computer, Microsoft Excel, VBA)

Ich glaube dass ein Syntaxfehler vorliegt: CHR(34) ist ein "

Kriterium = Chr(34) & "Test1" & ", " & Chr(34)& "Test2" & ", " & Chr(34)& "Test3" Chr(34)

ActiveSheet.Range("$A$1:$I$92").AutoFilter Field:=3, Criteria1:=Array(Kriterium), Operator:=xlFilterValues
 

Hallo,

wirklich gut auskennen mit VBA kann ich mich auch nicht aber dein Problem liegt vermutlich darin das du versuchst mehrere Werte in einer Variablen zu speichern. Also ich glaube dein Makro versucht nach ["3","5",] zu filtern.