Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Pivot: Nummer (Index) des ausgewählten PivotItems

Pivot: Nummer (Index) des ausgewählten PivotItems
B.Paulus
Hallo liebe Mitstreiter,
ich habe folgendes Problem in einer Pivot Tabelle.
Ich möchte ein PivotField (Woche) über einen SpinButton steuern. Hierzu frage ich den aktuellen Wert über .PivotFields("Woche").CurrentPage.Name ab. Aber welche Nummer .PivotItems(?) hat dieser Wert ?
Aktuell behelfe ich mir mit einer Schleife, um an diesen Wert zu kommen..
In diesem Falle wurde der Button "down" gedrückt.
<pre>Private Sub Woche_SpinDown()
Dim lngEinträge As Long
Dim lngIndex As Long
Dim pf As PivotField
Set pf = PivotReport.PivotFields("Woche")
lngEinträge = pf.PivotItems.Count
For lngIndex = 1 To lngEinträge
If pf.CurrentPage = "(All)" Then
pf.CurrentPage = pf.PivotItems(lngEinträge).Name
Exit For
ElseIf pf.PivotItems(lngIndex).Name = pf.CurrentPage And lngIndex > 1 Then
pf.CurrentPage = pf.PivotItems(lngIndex - 1).Name
Exit For
End If
Next
End Sub</pre>
Gibt es einen kürzeren & schnelleren Weg ? Sowas wie .CurrentPage.index ?
Lieben Dank
Bernd
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Pivot: Nummer (Index) des ausgewählten PivotItems
24.01.2010 18:24:54
fcs
Hallo Bernd,
wenn du den aktuellen Index in einer modulweiten Variablen zwischenspeicherst, dann sollte es ohne die Schleifen gehen. Da die Variable nach dem Öffnen der Datei Wert 0 hat, wird bei Betätigen des Spinbuttons immer je nach Richtung das 1. oder letzte Element angezeigt. Dies kannst du verhindern, wenn du den Spinbutton mit einer Zelle verknüpfst und den Zellwert als Speicher benutzt.
Gruß
Franz
ungetestet:
Option Explicit
Private PageWocheIndex As Long
Private Sub Woche_SpinDown()
Dim pf As PivotField
Set pf = PivotReport.PivotFields("Woche")
PageWocheIndex = PageWocheIndex - 1
If PageWocheIndex  pf.PivotItems.Count Then PageWocheIndex = 1
pf.CurrentPage = pf.PivotItems(PageWocheIndex).Name
End Sub
'oder mit verknüpfter Zelle des Spinbuttons
'oder mit verknüpfter Zelle - F1 ist die mit dem Spinbutton verknüpfte Zelle
Private Sub Woche_SpinDown()
Dim pf As PivotField, Zelle As Range
Set Zelle = Range(Me.Woche_SpinDown.LinkedCell.Address)
Set pf = PivotReport.PivotFields("Woche")
Zelle.Value = Zelle.Value - 1
If Zelle.Value  pf.PivotItems.Count Then Zelle.Value = 1
pf.CurrentPage = pf.PivotItems(Zelle.Value).Name
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige