Clever-Excel-Forum

Normale Version: Fehler in VBA Filterung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich habe ein kleines Problem und komme nicht auf die (vermeintlich einfache) Lösung.
Ich möchte in VBA einen Filter einschalten. Ich frage das Datum "von" und "bis" per UserForm ab und die Spalte 4 (Bzw in der Tabelle ab D5 abwärts)  soll dann danach gefiltert werden.
Dazu habe ich in VBA die Zeile:

Worksheets("Fertigmeldungen").Range("D5").AutoFilter Field:=4, Criteria1:=">=" & von, Operator:=xlAnd, Criteria2:="<=" & bis

Excel setzt den Filter an der richtigen Stelle aber das Ergebnis ist immer leer.
Dabei habe ich dort entsprechende Einträge.
Das Zahlenformat auf diese Zellen ist so eingestellt ("01.01.21")



Hat jemand eine Idee wo der Fehler liegt


Gruß
Statler
Hallo Statler,

Du bist auf dem richtigen Weg. Hört sich nach verschiedenen Datentypen an.

Lies einfach mal einen Wert (z.B. D6) in eine Variable ein, gehe den Code im Einzelschrittmodus durch und schau dir an, wie deine Werte genau aussehen.
Haben beide Gänsefüßchen vor und hinter dem Wert, oder beide keine?

Und natürlich hilft eine Beispieldatei...

Gruß,
Lutz
Hallo Lutz,
vielen Dank für deinen Hinweis.
Ich bin schon mal ein gutes Stück weiter.
Die Abfrage funktioniert jetzt bis hier:
ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=4, Operator:=xlFilterValues, Criteria1:=Lieferdatum_von
so weit so gut. Wenn ich nun einen Vergleichsoperator (so wie im Internet angegeben) hinzufüge - funktioniert es nicht mehr. Also so
ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=4, Operator:=xlFilterValues, Criteria1:="<=" & Lieferdatum_von 
Ich habe also "nur" ein "<=" & mit angefügt. Laut Internetrecherche sollte das funktionieren. Dann ist die Liste bei mir aber imme leer.
Hast Du oder hat sonst jemand eine Idee, warum das so ist?
Gruß
Statler
probier mal "=<"
Hallo Lutz,

das wäre zu schön gewesen.... nein, funktioniert leider auch nicht

Gruß
Statler

Ich gebe so langsam auf.
Wenn ich den Makro-Rekorder verwende und "per Hand" filtere funktioniert der Filter.
Wenn ich den Filter dann wieder manuell entferne und das Makro wieder aufrufe ist die Liste leer.
Wie geht das denn?

Statler
Oh ja, das hat einige und auch mich schon mal viel Zeit gekostet.

Du brauchst das Datum im US Format.
 Criteria1:=">=01/16/2020", Operator:=xlAnd, Criteria2:="<=02/10/2020"

Gruß Elex
Hallo, 19 

Datum filtern ist etwas zickig. Wenn du das mit einer TextBox auf einer UserForm machst, musst du etwas "ummodeln". 21 

In meinem Beispiel sind es ComboBoxen, aber das Prinzip bleibt. Dodgy
[attachment=39590]
An alle vielen Dank für die Tips.

Ich habe eine Lösung gefunden. Das Umschreiben in dem Format 00/00/0000 hatte ich auch probiert. Das hat nicht funktioniert.
Was funktioniert hast ist die Deklaration DIM Lieferdatum_von as Date und DIM Lieferdatum_bis as Date.
Das in Verbindung mit CBdl() funktioniert. Ich hatte also "nur" das DIM as... nicht drin.

Jetzt geht es.

Danke Euch :)