Fehler in VBA Filterung
#1
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
Antworten Top
#2
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
Antworten Top
#3
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
Antworten Top
#4
probier mal "=<"
Antworten Top
#5
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
Antworten Top
#6
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
Antworten Top
#7
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]
Antworten Top
#8
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 :)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste