Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
988to992
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

pvFields in PageRange überwachen_möglich?

pvFields in PageRange überwachen_möglich?
04.07.2008 17:25:06
Andreas
Hallo Herber Fans,
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: pvFields in PageRange überwachen_möglich?
09.07.2008 12:26:00
Wolli
Hallo Andreas,
ich habe nur mal flott auf Deine Frage geschaut. Der Status ist ja nicht "mehrere Elemente" (wie angezeigt), sondern jedes einzelne Element hat Status sichtbar / unsichtbar. Liegt der Schlüssel nicht schon in Deinen Debug.Print-Zeilen?
if hiddenitems.count + 1 < pivotitems.count then "Mehrere Elemente angezeigt"
if hiddenitems.count + 1 = pivotitems.count then "Ein Element angezeigt"
if hiddenitems.count = 0 then "Alle Elemente angezeigt"
Gruß, Wolli

AW: pvFields in PageRange überwachen_möglich?
09.07.2008 14:16:00
Andreas
Hallo Wolli,
nein das war es leider nicht. Wenn im Seitenfeld „Alle“ gewählt sind, so gibt VBA für HiddenItems genau die Anzahl aus, die es auch für PivotItems.count ausgibt. Das Seitenfeld verhält sich in diesem Punkt sehr kurios. Ich habe Deinen Code einmal in eine Beispieldatei eingefügt.
https://www.herber.de/bbs/user/53688.xls
steht in: Modul 1 – Code Sub ZeilenFeldItemsTest_2()
Dort sind auch alle meine bisherigen Ansätze drin. Ich werde ebenfalls weiter forschen. Ich würde mich freuen, wenn Du vielleicht noch einen viel versprechenden Ansatz für dieses Problem findest.
Dank und Gruß, Andreas

Anzeige
AW: pvFields in PageRange überwachen_möglich?
09.07.2008 16:26:00
Andreas
Hallo Wolli,
ich habe einen durch Zufall und Stöbern noch einen Ansatz gefunden, der bisher vielversprechend erscheint.
Option Explicit

Sub ZeilenFeldItemsTest_3()
Dim pvTable As PivotTable
Dim pvField As PivotField
Set pvTable = ActiveSheet.PivotTables(1)
If pvField.DataRange.Value  "(Alle)" Then                 'DataRange scheint zu funktionieren! _
MsgBox "Status:  Alle", , pvField.Name
Else
MsgBox "Stauts: Alle", , pvField.Name
End If
End Sub


Danke Dir nochmals für Deine Antwort.
Einen schönen restlichen Mittwoch noch, Grüße,
Andreas

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige