22.05.2017, 21:54
(Dieser Beitrag wurde zuletzt bearbeitet: 23.05.2017, 05:15 von WillWissen.
Bearbeitungsgrund: Code in Codetags gesetzt
)
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 Sub
Falls mir jemand helfen könnte wäre ich dankbar.
Grüsse