Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

variablen Filter mit Makro setzen
#1
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
Antworten Top
#2
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
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • SimonVBA
Antworten Top
#3
Hallo Uwe,

das funktioniert wunderbar!

Vielen Dank. Blush
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste