719 Aufrufe
Gefragt in Tabellenkalkulation von

Guten Abend,

wie sezte ich in vba den Autofilter auf den letzten Monat ?

mein ansatz : ist falsch, so bekomme ich die letzten 30 tage aber nicht den vergangen Monat April.

Public Sub Test()
 Dim Filter As Range
 Dim Kriterium As Long

Kriterium = DateSerial(Year(Now), Month(Now), 0)
AutoFilter Field:=4, Criteria1:=Kriterium

End Sub

Besten Dank, für eure Hilfe, Ralf

7 Antworten

0 Punkte
Beantwortet von flupo Profi (17.7k Punkte)

Moin,

versuch es mal mit Criteria2 anstatt Criteria1.

Hilfe dazu: "...Wird auch als einzelne Kriterien für Datumsfelder verwendet, die nach Datum, Monat oder Jahr filtern. Gefolgt von einem Array, der die Filterung beschreibt Array(Level, Date). Hierbei ist "Level" 0-2 (Jahr, Monat, Datum) und "Date" ein gültiges Datum innerhalb des Filterzeitraums."

Für den April könnte das so aussehen:

Criteria2:=Array(1, "4/1/2020")

Gruß Flupo

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi Ralf,

Excel hat dafür ein eigenes Filterkrieritum: "Letzter Monat" - nach diesem Prinzip:

    Range("A1:D28").AutoFilter Field:=4, Criteria1:=8, _
        Operator:=11, Criteria2:=0, SubField:=0

Bis später, Karin

0 Punkte
Beantwortet von
Hallo Karin,

ich möchte es verstehen, warum muss man zwei Kriterien angeben ?

Beste Grüße, Ralf
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)
Hi Ralf,

Criteria1 gibt quasi den "Startwert" und Criteria2 den "Endwert" an, wobei Operator:=11 zeigt, dass es sich um einen dynamischen Filter handelt. Die Parameter 8 und 0 für die beiden Kriterien hat Excel beim Aufzeichnen der Filterung ausgegeben - sind anscheinend interne Festlegungen für den Monatsersten und den Monatsletzten des Vormonats.

Bis später Karin
0 Punkte
Beantwortet von flupo Profi (17.7k Punkte)
Ich hab auch mal noch eine Aufzeichnung (mit Excel 2016) gemacht. Das Ergebnis sieht noch etwas einfacher aus:

    ActiveSheet.Range("$A$1:$A$4").AutoFilter Field:=1, Criteria1:=xlFilterLastMonth, Operator:=xlFilterDynamic

Gruß Flupo
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)
Was genau Excel aufzeichnet hängt dann wohl von der Excel-Version ab (bei mir Excel2016), hat aber auf das Erfebnis keinen Einfrluss.

Bis später, Karin
0 Punkte
Beantwortet von
Hallo Karin, Hallo Flupo,

danke für ausführliche Erklärung. Ihr seid Super

Beste Grüße, Ralf
...