Clever-Excel-Forum

Normale Version: variablen Filter mit Makro setzen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich erstelle derzeit ein EXCEL-Tool, mit dem Umsatzwerte ausgewertet werden sollen.
Nun soll der Nutzer festlegen können, welche vier Quartale berücksichtigt werden sollen. Bis jetzt verwende ich folgenden Code um die Filter zu setzen:

ActiveSheet.Range("$B$4:$L$143").AutoFilter Field:=5, Criteria1:=Array( _"Q1/21", "Q2/21", "Q3/21", "Q4/21"), Operator:=xlFilterValues

Danach werden die Summen kopiert und woanders eingefügt.

Das Array soll nun aber mit Variabeln bestückt werden, sodass der Nutzer bspw. Q3/21 als Startquartal angeben kann und automatisch Q4/21, Q1/22 und Q2/22 berücksichtigt wird.

Hat da jemand eine Idee?

Vielen Dank im Voraus!
Simon
Hallo Simon,

Code:
Sub Quartalfilter()
  Dim i As Long
  Dim strF(1 To 4) As String
  Dim varF As Variant
  'strF(1) = "2/21"
  strF(1) = Application.InputBox("Bitte das 1. Quartal im Format x/xx eingeben!", , , , , , , 2)
  If Not CVar(strF(1)) = False And Len(strF(1)) Then
    varF = Split(strF(1), "/")
    For i = 1 To 4
      strF(i) = (varF(0) + i - 1) Mod 4
      If strF(i) = "0" Then strF(i) = "4"
      strF(i) = "Q" & strF(i) & "/" & varF(1) - (strF(i) < varF(0))
    Next i
    ActiveSheet.Range("$B$4:$l$143").AutoFilter _
      Field:=5, Criteria1:=Array(strF), Operator:=xlFilterValues
  End If
End Sub

Gruß Uwe
Hallo Uwe,

das funktioniert wunderbar!

Vielen Dank. Blush