Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
764to768
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
764to768
764to768
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Autofilter per VBA
17.05.2006 09:36:18
kiepetz
Hallo Forum
Ich möchte beliebige Spalten, in denen Datumswerte im Format tt.mm.yyyy
eingetragen sind mittels Autofilter filtern.
Erschwerdend wird´s, da ich nach Monaten filtern möchte. (zB 01.2006)
Um dies zu lösen, habe ich nachfolgendes Makro erstellt. Leider bringt dieses nicht die gewünschten Daten sondern immer nur leere Zellen.
Für Eure Hilfe wäre ich sehr dankbar !
mfg
Rudi

Sub Sucheingabe_Monat()
'makro für datum suchen
Dim mldg, titel, voreinstellung, wert, wert1, wert2
Dim blatt As String
Dim field As Integer
mldg = "gewünschtes Monat eingeben (Format: MM.JJJJ)- 'alles' für alle"
titel = "Sucheingabe"
voreinstellung = "01.2006"
wert = InputBox(mldg, titel, voreinstellung)
blatt = ActiveSheet.Name
field = ActiveCell.Column
wert = DateValue(wert)
wert2 = DateAdd("m", 1, wert) - 1
wert1 = DateAdd("d", -1, "01." + wert)
wert1 = ">=" & wert1
wert2 = "<=" & wert2
If wert = "alles" Then
Worksheets(blatt).ShowAllData
Else
Selection.AutoFilter field:=field, Criteria1:=wert1, Operator:=xlAnd,  Criteria2:=wert2
End If
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter per VBA
17.05.2006 10:57:18
WernerB.
Hallo Rudi,
wie gefällt Dir das?

Sub Sucheingabe_Monat()
'makro für datum suchen
Const mldg As String = vbCr & _
"gewünschtes Monat eingeben (Format: MM.JJJJ)- 'alles' für alle"
Dim wert As String, _
wert1 As Date, wert2 As Date
wert = InputBox(mldg, "Sucheingabe", "01.2006")
If wert = "" Then Exit Sub
If wert = "alles" Then
ActiveSheet.ShowAllData
Else
wert = DateValue(wert)
wert1 = DateAdd("d", -1, wert)
wert2 = DateAdd("m", 1, wert) - 1
Selection.AutoFilter field:=ActiveCell.Column, _
Criteria1:=">=" & CDbl(DateValue(wert1)), _
Operator:=xlAnd, _
Criteria2:="<=" & CDbl(DateValue(wert2))
End If
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: Autofilter per VBA
17.05.2006 12:57:21
rudolf
Hallo Werner
Herzlichen Dank für Deine Hilfe.
Deine Lösung funktioniert super und ist auch um einiges kürzer.
Warum ich allerdings die Werte für die Kriterien in Double-Werte
umwandeln muss, ist mir noch nicht klar.
mfg
Rudi
AW: Autofilter per VBA
17.05.2006 13:20:05
WernerB.
Hallo Rudi,
vielen Dank für Deine Rückmeldung; es freut mich, wenn ich Dir helfen konnte.
Nach meiner Vermutung müssen die Datumswerte für die Kriterien deshalb in Double-Werte umgewandet werden, weil Excel beim Filtern von Datumswerten diese nur in Form von seriellen Zahlen bearbeiten kann.
Das heutige Datum (17.05.2006) hat z.B. die serielle Zahl "38854".
Gruß
WernerB.
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige