Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Autofilter geht bei Array mit Dates nicht

Autofilter geht bei Array mit Dates nicht
22.06.2019 22:22:48
Sandra
Ich habe bei der Übergabe eines Arrays mit Daten (hier: Plural von Datum) ein Problem mit dem Autofilter. D. h er möchte per se nicht Filtern, obwohl in der entsprechenden Spalte alles als Datum formatiert ist und vom Autofilter (Jahr, Monat (erste Untergliederung), Tag (zweite Untergliederung)) erkannt wird.
ich gehe wie folgt vor:
For Each xkey In dic
If strDatenwerte "" Then
' strDatenwerte = strDatenwerte & ";" & CLng(CDate(xkey))
die Alternativen (gehen auch nicht)
strDatenwerte = strDatenwerte & ";" & Format(CDate(xkey). "m/d/yyyy") und
strDatenwerte = strDatenwerte & ";" & Format(CDate(xkey). "mm/dd/yyyy")
Else
strDatenwerte = CLng(CDate(xkey))
die Alternativen (gehen auch nicht)
strDatenwerte = Format(CDate(xkey). "m/d/yyyy") und
strDatenwerte = Format(CDate(xkey). "mm/dd/yyyy")
End If
Next xkey
arrParameter = Split(strDatenwerte, ";")
ws.Range(spBuchstabe(CInt(intersteSpalte)) & lngersteZeile - 1 & ":" & spBuchstabe(CInt(intletzteSpalte)) & lngletzteZeile).AutoFilter Field:=2, Criteria1:=Array(arrParameter), Operator:=xlFilterValues
Diese Variante funktioniert nicht, obwohl die Daten vorhanden sind.
Das verrückte ist nun: Übergebe ich zunächst alles an ein Array oder einer einzelnen Variablen wie nachfolgend ausgeführt, dann funktioniert der Autofilter (die Füllung des Datenfeldes habe ich an dieser Stelle nicht niedergeshrieben).
ws.Range(spBuchstabe(CInt(intersteSpalte)) & lngersteZeile - 1 & ":" & spBuchstabe(CInt(intletzteSpalte)) & lngletzteZeile).AutoFilter Field:=2, Criteria1:=">=" & CLng(CDate(arrDaten(LBound(arrDaten)))), Operator:=xlAnd, Criteria2:=" Daher nun meine Frage: Warum funktioniert die erste Variante nicht, jedoch die zweite Variante?
Die zweite Variante scheidet als Alternative aus, weil nicht immer alle Daten zwischen dem kleinsten und größten Datum selektiert werden.
Ich hoffe, dass mir jemand bei diesem Problem behilflich sein kann, weil ich nicht verstehen kann warum der Autofilter bei gewöhnlichen Werten problemlos funktioniert, jedoch bei einem Datum solche Probleme macht. Ich verwende MS Excel 2007.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter geht bei Array mit Dates nicht
22.06.2019 23:07:43
Daniel
Hi
in VBA muss für den Autofilter mit Einzelwerten oder im Array das Datum als Text im amerikanischen Format vorliegen.
Das heißt: Monat / Tag / Jahr
Wichtig ist hierbei auch Schrägstrich als Trenner.
das Problem ist, dass in der Format-Funktion das Zeichen "/" nicht für den Schrägstrich steht, sondern das Funktionszeichen für "aktuelles Datumsstrennzeichen"! ist.
dh in einem deutschen Excel bekommst du auch mit dem "/" deinen Datumsstring mit dem Punkt als Trennzeichen (und damit funktioniert der Autofilter nicht)
dh du musst dafür sorgen dass wirklich der Schrägstrich im Text steht.
Das kann man erreichen, in dem man den Backslash voranstellt, welcher in der Formatfunktion und im Zahlenformat anzeigt, dass das nachfolgende Zeichen kein Funktionszeichen ist, sondern direkt zu anzuwenden ist:
so sollte es funktionieren:
strDatenwerte = strDatenwerte & ";" & Format(CDate(xkey). "m\/d\/yyyy")
zu deiner zweiten Filtervariante:
für den größer- oder kleiner-Vergleich muss VBA und der Autofilter das Datum sowieso in den Zahlenwert umrechnen. Wenn du das schon machst, um so besser.
Die CDate-Funktion arbeitet mit dem Datumsformat deiner Ländereinstellung.
Gruß Daniel
Anzeige
AW: Autofilter geht bei Array mit Dates nicht
23.06.2019 12:45:50
Sandra
Hallo Daniel
Vielen herzlichen Dank für Ihre Antwort.
Der Lösungsansatz funktioniert reibungslos, jedoch bin ich etwas überrascht, dass ich bei meinen vorherigen Recherchen nicht auf diese Lösung gestoßen bin.
Viele Grüße
Sandra

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige