Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Datum filtern mit VBA

534 views
Skip to first unread message

Harald Kante

unread,
Feb 23, 2002, 12:27:08 PM2/23/02
to
Hallo Excel-Profis

Ich versuche mit VBA eine Tabelle nach Datumsbereich zu filtern.
Zuerst wird nach der Spalte sortiert in der das Datum steht,
dann nach dem in eine TextBox eingegebenen Datum gefiltert.

Private Sub archiv()
Dim datum1 As Date

datum1 = CDate(TextBox1.Value)
With Worksheets("Rollendaten")
Key1:=Worksheets("Rollendaten").Columns("y"), _
Key2:=Worksheets("Rollendaten").Columns("b"), _
Key3:=Worksheets("Rollendaten").Columns("v"), Header:=xlYes
End With
Columns("Y:Y").AutoFilter Field:=1, Criteria1:=("<=" & datum1)

End Sub

Das funktioniert aber nicht, es wird kein Datum gefunden.
Im Autofilter finde ich anschließend unter "benutzerdefiniert" die
richtigen Einträge und ein Klick auf "OK" führt zum richtigen
Filterergebnis. Das Format des Datums ist z.B. 23.02.02
Über die Benutzeroberfläche funktionierts, über VBA nicht.

Was könnte die Ursache sein und welche Lösung gibt es?


mfg Harald

Wolfgang Döbler

unread,
Feb 23, 2002, 3:31:12 PM2/23/02
to
Hallo Harald,

vielleicht solltest Du versuchen, das zu filternde Datum einer
(Object)Varablen zuzuweisen:

GesuchtesDatum = MsgBox()
Columns("Y:Y").AutoFilter Field:=1, Criteria1:=(GesuchtesDatum)

Ich hab es nicht probiert, aber es sollte doch gehen. Oder?

Wolfgang

"Harald Kante" <H.K...@web.de> schrieb im Newsbeitrag
news:Xns91BEBBB1...@mynews.hakaon.de...

Stefan Stoehr

unread,
Feb 23, 2002, 3:23:49 PM2/23/02
to
Harald Kante schrieb in microsoft.public.de.excel:

Hi Harald,

versuchs mal so:

Dim datum1 As Long
datum1 = CLng(CDate(TextBox1.Value))
.
.
.


Columns("Y:Y").AutoFilter Field:=1, Criteria1:=("<=" & datum1)

cu
Stefan

Wolfgang Döbler

unread,
Feb 23, 2002, 3:49:24 PM2/23/02
to
mein Beitrag war nicht ganz vollständig:

GesuchtesDatum = MsgBox()
Datum = "<=" & Gesuchtes Datum
Columns("Y:Y").AutoFilter Field:=1, Criteria1:=(Datum)

Wolfgang

"Wolfgang Döbler" <doe...@freenet.de> schrieb im Newsbeitrag
news:3c77fa04$0$151$9b62...@news.freenet.de...

Wilfried Butzek

unread,
Feb 23, 2002, 6:31:17 PM2/23/02
to

Hallo Harald,

vielleicht liegt es an folgendem (ich weiß leider nicht mehr,
woher ich das habe; der/die Autor(en) mögen mir das verzeihen):

<Zitatbeginn>
Excel speichert ein Datum als fortlaufende
Zahl. Stehen Ihre Filterkriterien für das Datum
in Zellen Ihres Arbeitsblattes, werden die Werte
zwar per VBA in den Dialog der benutzerdefinierten
Kriterien des AutoFilters eingetragen, aber
der Filter wird nicht angewendet, wenn das
Datum im Datumsformat übergeben wird. Das
geschieht aber, wenn Sie die Value-Eigenschaft
der entsprechenden Zellen nutzen. In diesem
Fall verwenden Sie stattdessen
die Value2-Eigenschaft
<Zitatende>

Beispiel, wenn in Zelle C3 das Datumskriterium steht:
ActiveSheet.Range("A6:C12").AutoFilter Field:=3, _
Criteria1:=">=" & Range("C3").Value2

Prüfe mal per Haltepunkt im VBA-Editor, was bei Dir
in datum1 steht ;-)

Mit freundlichem Gruß
Wilfried

Harald Kante

unread,
Feb 23, 2002, 4:14:04 PM2/23/02
to
Hallo Stefan, hallo Gruppe

Stefan Stoehr <stefan...@gmx.net> schrieb:



>versuchs mal so:
>
>Dim datum1 As Long
>datum1 = CLng(CDate(TextBox1.Value))

Danke, das war die Lösung :-))

mfg Harald

Harald Kante

unread,
Feb 23, 2002, 4:09:07 PM2/23/02
to
Hallo Wolfgang, hallo Gruppe

"Wolfgang Döbler" <doe...@freenet.de> schrieb:


>vielleicht solltest Du versuchen, das zu filternde Datum einer
>(Object)Varablen zuzuweisen:
>
>GesuchtesDatum = MsgBox()
>Columns("Y:Y").AutoFilter Field:=1, Criteria1:=(GesuchtesDatum)

Hat leider nicht funktioniert. Vieleicht habe ich Dich aber auch nur
nicht richtig verstanden, denn so viel Kennung habe ich in VBA nicht.
Der Vorschlag von Stefan hat mein Problem gelöst.
Ich danke Dir trotzdem für Deine Antwort.

mfg Harald

Harald Kante

unread,
Feb 23, 2002, 7:21:49 PM2/23/02
to
Hallo Wilfried, hallo Gruppe

Wilfried Butzek <Wilfrie...@t-online.de> schrieb:

>Prüfe mal per Haltepunkt im VBA-Editor, was bei Dir
>in datum1 steht ;-)

Es stand natürlich das Datum im Datumsformat.
Ich hatte es ja extra so deklariert :-(
Da hatte ich allerdings Deinen Beitrag noch nicht gelesen ;-)
Stefan Stoehr hat auch schon die Lösung gepostet.
Vielen Dank Euch allen.

mfg Harald

0 new messages