Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen

Datum nach Quartalen filtern | Herbers Excel-Forum


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 With
Gruß 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:

Sub Quartal_und_Jahr_autofiltern()
    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


Beiträge aus den Excel-Beispielen zum Thema "Datum nach Quartalen filtern"