aus dem Forum hier habe ich von Michael den folgenden Code übernommen:
Sub a()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.Worksheets("AfA")
Dim p As PivotTable: Set p = Ws.PivotTables("PivotTable2")
Dim f As PivotField: Set f = p.PivotFields("Monat")
Dim i As PivotItem
With f
For Each i In .PivotItems
Select Case i.Name
Case Is = "Januar", "Februar"
i.Visible = True
Case Else
i.Visible = False
End Select
Next
End With
End Sub
Leider funktioniert er bei mir nicht. Daraufhin habe ich mit dem Makrorekorder die Auswahl von Januar und Februar aufgezeichnet:
Sub b()
ActiveSheet.PivotTables("PivotTable2").PivotFields("[Datum].[Monat].[Monat]"). _
VisibleItemsList = Array("[Datum].[Monat].&[1]", "[Datum].[Monat].&[2]")
End Sub
und den Code wie folgt angepasst:
Sub a()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.Worksheets("AfA")
Dim p As PivotTable: Set p = Ws.PivotTables("PivotTable2")
Dim f As PivotField: Set f = p.PivotFields("[Datum].[Monat].[Monat]")
Dim i As PivotItem
With f
For Each i In .PivotItems
Select Case i.Name
Case Is = "[Datum].[Monat].&[1]", "[Datum].[Monat].&[2]"
i.Visible = True
Case Else
i.Visible = False
End Select
Next
End With
End Sub
Leider funktioniert das auch nicht. Es kommt aber auch keine Fehlermeldung! Nur, dass das Pivotfeld "Monat" einfach auf dem Wert "All" stehen bleibt!? Was mache ich falsch?Darüber hinaus hätte ich es gerne, dass die einzustellenden Monate nicht direkt im Code stehen, sondern aus Excel übernommen werden. Dazu habe ich in A1:B12 in Spalte A untereinander die Monatsnamen Januar bis Dezember und in Spalte B zu jedem Monat die Angabe "WAHR" oder "FALSCH". Mit dem Makro sollen die Monate in der Pivottabelle eingestellt werden, die in dieser Liste den Wert "WAHR" haben. Könnt ihr mir helfen?
Vielen Dank für eure Unterstützung.
Gruß Andrea