ich versuche mich gerade daran, die Feldstati von Pivotfeldern zu überwachen. Für alle Felder im RowRange bekomme ich das auch gut hin. Nun möchte ich das noch für den PageRange realisieren. Ich habe es schon geschafft, auszulesen, ob im Pivot Seitenfeld Alle aktiviert ist oder nicht.
Das ist mein TestCode:
Sub pvTableFieldÜberwachung()
Set pvTable = ActiveSheet.PivotTables(1)
For Each pvField In pvTable.PageFields
Debug.Print pvField.PivotItems.Count
Debug.Print pvField.HiddenItems.Count
If Not pvField.PivotItems(1).Visible Then
MsgBox "ALLE/ ALLE ist gewählt"
End If
Next
End Sub
Mit der Passage:
If Not pvField.PivotItems(1).Visible Then
MsgBox "ALLE/ ALLE ist gewählt"
End If
kann ich gut feststellen, ob die erste Option eines Seitenfeldes gewählt ist. Im Deutschen Excel hätte ich auch direkt über die Bezeichnung des Items Alle gehen können, aber über Indizierung ist es sprachenunabhängig.
Das ich im Code noch mit Debug.Print gearbeitet habe, war für Testzwecke bestimmt.
Was ich bisher jedoch nicht prüfen konnte, war folgendes Szenario. Ein Seitenfeld mit bspw. 9 Items wird in den in den RowRange gezogen und dort werden von den 9 Items nur 7 über die Tick Kästchen gewählt. Wenn ich nun dieses PivotFeld wieder in den PageRange ziehe zeigt es korrekterweise Mehrere Elemente an.
Wie kann ich dieses prüfen? Die IF Prüfung mit PivotItems(1).visible springt auf Mehrere Elemente nicht an.
Habt ihr eine Idee, wie die drei möglichen Konstellationen (Alle/ eines gewählt/ mehrere gewählt) eines Seitenfeldes sauber erfaßt werden können?
Vielen Dank und allen Beteiligten schon mal ein schönes Wochenende.
Grüße, Andreas Hanisch