klar - das Thema hatten wir schon mehrfach und es gibt ja da
schon den einen oder anderen Lösungsansatz. Es geht darum in
einem Pivot Seitenfeld, nur bestimmte Elemente anzuzeigen.
Ich löste das bisher so, wenn ich in einem Seitenfeld
nur die in HM1:HM2 stehenden Artikel einblenden wollte:
For Each Heft In Sheets("PivotWerte").PivotTables("Verkauf").PivotFields("Artikel").PivotItems
If Heft Range("hm1").Text Then
Heft.Visible = False
End If
Next Heft
For Each Heft In Sheets("PivotWerte").PivotTables("Verkauf").PivotFields("Artikel").PivotItems
If Heft Range("hm2").Text Then
Heft.Visible = False
End If
Next Heft
Hat bisher auch prima geklappt (will sagen schnell), weil die
Anzahl PivotItems im PivotField Artikel selten mehr als 10 und die
Anzahl der darzustellenden Artikel selten mehr als drei auf einmal
betrug.
Seit Kurzem muß ich mich aber mit ewig vielen Artikel herumschlagen
aus denen zu allem Überfluß dann auch noch unbegrenzt viele auswählbar
sein sollen. Klar, daß der oben beschriebene Weg da an seine Grenzen
stößt. Selbst bei
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.CutCopyMode = False
Application.CommandBars("Standard").Controls("Rückgängig").Enabled = False
Application.Calculation = xlCalculationManual
dauert es eine kleine Kaffeepause, ehe die Ergebnisse vorliegen.
Nun mein Anliegen
Gibt es einen schnelleren Weg, alle Elemnte in einem Pivot Seitenfeld
auszublenden, bis auf diejenigen, die in einem Bereich (sagen wir A1
bis A100) stehen ?
Hatte schon daran gedacht, diesen Bereich per Array zu übergeben.
Doch selbst da muß ja erstmal alles, was nicht im Array enthalten ist
visible = false gesetzt werden.
Hat jemand eine Idee ?
Viele Grüße
R.Schmitt