Informationen und Beispiele zum Thema InputBox | |
---|---|
![]() |
InputBox-Seite mit Beispielarbeitsmappe aufrufen |
Betrifft: Datum nach Quartalen filtern
von: Ben
Geschrieben am: 21.01.2010 19:54:49
Hallo zusammen,
hab jetzt über 2 Stunden im Forum gesucht, aber nichts hat funktioniert.
Folgendes Problem:
Ich habe eine Spalte mit mehreren Daten (TT/MM/JJJJ).
Nun möchte ich, mit Hilfe eines Command Buttons (VBA) nach einem Quartal filtern (z.B. Quartal I, 2009), so dass nur noch die Daten die in diesem Quartal liegen angezeigt werden.
Ich weiß, dass es einen Datumsfilter bei Excel gibt. Aber wenn ich den Vorgang mit Makro aufzeichne und dann ausführen will, wird mir plötzlich gar kein Datum mehr angezeigt (alle Daten gefiltert).
Kann mir da bitte jmd. behilflich sein?
Danke im Voraus!
Gruß
Ben
Betrifft: ..vielleicht mit Pivot?...
von: robert
Geschrieben am: 21.01.2010 20:01:06
hi,
da kannst du unter Gruppierung verschiedene möglichkeiten
auswählen.
gruß
robert
Betrifft: AW: ..vielleicht mit Pivot?...
von: Ben
Geschrieben am: 21.01.2010 20:15:44
Habe leider noch nie mit Pivot gearbeitet.
Gibt es keine Lösung mit VBA?
Gruß
Ben
Betrifft: ..versuch es einmal, siehe beispieldatei-owt
von: robert
Geschrieben am: 22.01.2010 08:19:48
https://www.herber.de/bbs/user/67407.xls
gruß
robert
Betrifft: AW: Datum nach Quartalen filtern
von: Tino
Geschrieben am: 21.01.2010 20:24:07
Hallo,
hier mal ein einfaches Beispiel.
Sub BeispielFiltern() Dim vonDatum As Long, bisDatum As Long Dim Quartal, Jahr Quartal = Application.InputBox("Quartal eingeben") Jahr = Application.InputBox("Jahr eingeben") If Not IsNumeric(Quartal) Or Not IsNumeric(False) Then Exit Sub Select Case Quartal Case 1 vonDatum = DateSerial(Jahr, 1, 1) bisDatum = DateSerial(Jahr, 3, 31) Case 2 vonDatum = DateSerial(Jahr, 4, 1) bisDatum = DateSerial(Jahr, 6, 30) Case 3 vonDatum = DateSerial(Jahr, 7, 1) bisDatum = DateSerial(Jahr, 9, 30) Case 4 vonDatum = DateSerial(Jahr, 10, 1) bisDatum = DateSerial(Jahr, 12, 31) Case Else: Exit Sub End Select With Tabelle1 On Error Resume Next If .FilterMode Then .ShowAllData On Error GoTo 0 .UsedRange.AutoFilter Field:=1, Criteria1:=">=" & vonDatum, Operator:=xlAnd, Criteria2:="<=" & bisDatum End WithGruß Tino
Betrifft: AW: Datum nach Quartalen filtern
von: Ben
Geschrieben am: 21.01.2010 21:33:32
Danke funktioniert!
Genial ;)
Betrifft: AW: Datum nach Quartalen filtern
von: Beate Schmitz
Geschrieben am: 21.01.2010 23:02:48
Hallo Ben und Tino,
Tinos Code könnte man so verkürzen:
Dim vonDatum As Long, bisDatum As Long
Dim Quartal, Jahr
Quartal = Application.InputBox("Quartal eingeben")
Jahr = Application.InputBox("Jahr eingeben")
If Not IsNumeric(Quartal) Or Not IsNumeric(False) Then Exit Sub
Select Case Quartal
Case Is < 5
vonDatum = DateSerial(Jahr, Quartal * 3 - 2, 1)
bisDatum = DateSerial(Jahr, Quartal * 3 + 1, 1) - 1
Case Else: Exit Sub
End Select
With Tabelle1 'anpassen!
On Error Resume Next
If .FilterMode Then .ShowAllData
On Error GoTo 0
.UsedRange.AutoFilter Field:=1, Criteria1:=">=" & vonDatum, Operator:=xlAnd, Criteria2:="<=" & bisDatum
End With
End Sub
Gruß,
Beate
Betrifft: Gute Idee...
von: Tino
Geschrieben am: 21.01.2010 23:32:07
Hallo,
ist mir aber erst jetzt aufgefallen in der Zeile
If Not IsNumeric(Quartal) Or Not IsNumeric(False) Then Exit Sub
ist noch ein Fehler, sollte eigentlich so stehen
If Not IsNumeric(Quartal) Or Not IsNumeric(Jahr) Then Exit Sub
Gruß Tino