AW: Datum an Autofilter übergeben
19.05.2021 18:25:14
Daniel
Hi
1. du solltest beim kürzen der Beispieldatei darauf achten, dass du nicht Sachen löschst, die für deine Fragestellung relevant sind.
hier fehlt bspw das Tabellenblatt, auf dem das Datum steht nach dem gefiltert werden soll.
2. Datum ist in Excel immer kitisch. In der Exceltabelle ist das Datum zwar immer eine einfache Zahl, sobald aber VBA ins Spiel kommt gilt das nicht mehr so ohne weiteres.
um deinen Code ans laufen zu bringen, gibts zwei möglichkeiten:
a) du lässt den Code zum Filtern wie er ist, Da du aber explizit nach einer Zahl filters, muss in den Zellen auch eine Zahl stehen, also müsstest du das Zahlenformat der Spalte 17 auf "Standard" stellen, dann würde dein Code laufen
b) du änderst den Code so ab, dass er für Datumswerte funktioniert. um rauszufinden, was du dazu tun musst, solltest du einfach mal den Filter anwenden und dann das Ergebnis mit dem Recorder aufzeichnen. das hilft meistens.
bei mir kommt dann folgendes Ergebnis raus:
ActiveSheet.ListObjects("TabData").Range.AutoFilter Field:=17, Operator:= _
xlFilterValues, Criteria2:=Array(1, "3/1/2021")
dh du brauchst zum Filtern nach einem bestimmten Datum folgendes:
- ein Array mit zwei Werten:
der erste Wert gibt an, nach dem genauen Tag, (1), dem Monat des Datums (2) oder dem Jahr des Datums gefiltert werden soll (3)
der zweite Wert ist dann das Datum in Textform in amerikanischer Schreibweise, dh Monat-Tag-Jahr mit dem Schrägstrich als Trennzeichen
also als ganzes dann so:
... .AutoFilter Field:=17, Operator:=xlFilterValues, Criteria2:=Array(1, Format(v_ALT_SSD, "m\/d\/yyyy"))
Gruß Daniel