Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Datumfilter über Schaltfläche





Frage

Hallo, ich möchte in einer EXCEL-Tabelle ein Datum (Zeitraum) über eine Schaltfläche filtern. Soweit bin ich gekommen: habe eine Schaltfläche erstellt und mit einem Makro belegt: Sub Dim Mldg, Titel, Voreinstellung, Wert1 Mldg = "Z e i t r a u m von" Titel = "Z e i t r a u m" Voreinstellung = "01.01.05" Wert1 = InputBox(Mldg, Titel, Voreinstellung) Dim Mldg2, Titel2, Voreinstellung2, Wert2 Mldg2 = "Z e i t r a u m bis" Titel = "Z e i t r a u m " Voreinstellung2 = "31.12.05" Wert2 = InputBox(Mldg2, Titel2, Voreinstellung2) Selection.AutoFilter Field:=2, Criteria1:=Wert1 Selection.AutoFilter Field:=2, Criteria1:=Wert2 End Sub Bei anderen Filtern, z.B. Adressen funktioniert das. Beim Datumswert kann ich aber bei Wert nur "=" und nicht größer bzw kleiner eingeben. Gibt es hier eine Lösung (oder auch evtl einen ganz anderen Vorschlag, ich möchte halt bequem, ohne über benutzerdefinerten Filter einen Zeitraum auswählen können.) Vielen Dank schon mal! Andreas

Antwort 1 von coros

Nabend Andreas,

nachfolgend Dein VBA Code etwas abgeändert.

Private Sub CommandButton1_Click()
Dim Mldg, Titel, Voreinstellung, Wert1 As Long, Wert2 As Long

Mldg = "Z e i t r a u m von"
Titel = "Z e i t r a u m"
Voreinstellung = "01.01.05"
Wert1 = DateValue(InputBox(Mldg, Titel, Voreinstellung))

Mldg2 = "Z e i t r a u m bis"
Titel = "Z e i t r a u m "
Voreinstellung2 = "31.12.05"
Wert2 = DateValue(InputBox(Mldg2, Titel2, Voreinstellung2))
    
Selection.AutoFilter Field:=2, Criteria1:=">" & Wert1, Operator:=xlAnd, _
Criteria2:="<" & Wert2

End Sub


Der obige Code filtert Spalte B nach zwei Datumswerten und listet die dazwischen liegenden Wert auf. Bei dem Makro wird aus dem Stringwert, den die Inputbox eigentlich zurückgibt, ein Datumswert gemacht, der dann aber in eine Variable gespeichert wird, die von Typ her als Long (Ganzzahl) deklariert wurde. Danach wird nach der Dezimalzahl, die das Datum bei Excel ja eigentlich ist, gefiltert.

Ich hoffe, das hilft Dir und Du kommst kalr. Bei Fragen oder Problemen melde Dich.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von aNDI59

Hallo Coros

... vielen Dank - funktioniert !

vielleicht doch noch ne kleine Frage:
was hat es denn mit den "Private" sub´s auf sich?
(falls man das in wenigen Worten erklären kann)
(bin absoluter Autodidakt auf Excel/VBA und weiß nur, worüber ich bisher zufällig gestolpert, und das gehörte nicht dazu)
Hab das jetzt als ganz "normales" Makro angelegt und es läuft.
Ciao,
Andreas

Antwort 3 von coros

Hi Andreas,

freut mich, dass Dir der VBA Code weitergeholfen hat. Ich hatte vergessen zu schreiben, dass es sich bei dem Code um einen Code handelt, der eine Befehlsschaltfläche mit dem Namen CommandButton1 voraussetzt. Daher auch die Startanweisung Private Sub um die Schaltfläche anzusprechen. Du kannst logischerweise den Code auch als Makro verwenden, wobei dann, wie Du es sicherlich schon selber herausgefunden hast, das Private wegfällt.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: