Hallo Zusammen
Ich habe mir ein Macro zusammengebaut, das bei einer DropDown Auswahl, den Filter einer Pivot Tabelle dementsprechend aktualisiert.
D.h. wenn ich die 3 in dem DropDown Menu auswähle - Worksheets("Benchmark").Cells(1, 6) - aktiviert er im Pivot Filter "month" die Monate 01 bis 03. Gleichzeitig deaktiviert er die Monate 04 bis 12.
Es funktioniert alles sehr gut, möchte es aber gerne Erweitern und weiss nicht wie.
1. Eine Pivot Tabelle wird hier angesteuert. Ich möchte aber auf alle Pivot Tabellen (ca. 6 Pivot und haben den gleichen Filter) den Filter ändern. Nehme an wieder eine Schleife, aber wie spreche ich alle an?
2. Der Code ist ein wenig "einfach" programmiert ;). Könnte man es auch kürzen? (vor allem die Arrays)
P
Falls mir jemand helfen könnte wäre ich dankbar.
Grüsse
	
	
	
	
Ich habe mir ein Macro zusammengebaut, das bei einer DropDown Auswahl, den Filter einer Pivot Tabelle dementsprechend aktualisiert.
D.h. wenn ich die 3 in dem DropDown Menu auswähle - Worksheets("Benchmark").Cells(1, 6) - aktiviert er im Pivot Filter "month" die Monate 01 bis 03. Gleichzeitig deaktiviert er die Monate 04 bis 12.
Es funktioniert alles sehr gut, möchte es aber gerne Erweitern und weiss nicht wie.
1. Eine Pivot Tabelle wird hier angesteuert. Ich möchte aber auf alle Pivot Tabellen (ca. 6 Pivot und haben den gleichen Filter) den Filter ändern. Nehme an wieder eine Schleife, aber wie spreche ich alle an?
2. Der Code ist ein wenig "einfach" programmiert ;). Könnte man es auch kürzen? (vor allem die Arrays)
P
Code:
rivate Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = ("$F$1") Then
    Application.SendKeys "{F9}"
    Dim Monat(1 To 12) As Integer
    Dim i As Variant
    Dim anzahlMon As Variant
    Dim noanzahlMon As Variant
    Dim wksPivot As Worksheet
    Dim pvTab As PivotTable, pvField As PivotField
    Dim wksActive As Worksheet
    
    Set wksPivot = Sheets("store1_bm")
    Set pvTab = wksPivot.PivotTables(1)
    Set pvField = pvTab.PivotFields("month")
    anzahlMon = Worksheets("Benchmark").Cells(1, 6).Value
    noanzahlMon = Worksheets("support_table").Cells(3, 6).Value
    If anzahlMon = "-" Then anzahlMon = noanzahlMon
    
    Monat(1) = "01"
    Monat(2) = "02"
    Monat(3) = "03"
    Monat(4) = "04"
    Monat(5) = "05"
    Monat(6) = "06"
    Monat(7) = "07"
    Monat(8) = "08"
    Monat(9) = "09"
    Monat(10) = "10"
    Monat(11) = "11"
    Monat(12) = "12"
    
  Application.ScreenUpdating = False
  
    For i = 1 To anzahlMon
        pvField.PivotItems(Monat(i)).Visible = True
    Next i
    For i = anzahlMon + 1 To 12
        pvField.PivotItems(Monat(i)).Visible = False
    Next i
  
    Application.ScreenUpdating = True
    
 End If
    
End SubFalls mir jemand helfen könnte wäre ich dankbar.
Grüsse
