Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1128to1132
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
Inhaltsverzeichnis

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

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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige