Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
952to956
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
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Pivottabelle - alle Details einblenden m. VBA Loop

Pivottabelle - alle Details einblenden m. VBA Loop
26.02.2008 20:29:00
Andreas
Hallo Herber Freunde;
ich habe ein kleines Problem mit der Möglichkeit Details in einer Pivottabelle. In letzter Zeit nutze ich verstärkt die Möglichkeit, für einzelne Datenfelder Details auszublenden, um die Übersichtlichkeit zu erhöhen. Nun habe ich aber festgestellt, daß diese sich nicht im Massenverfahren wieder einblenden lassen. Zumindest habe ich in der Excel Hilfe nichts gefunden, um alle Details für eine Pivot einblenden zu lassen. Hier im Forum auch nichts. In der Beispieldatei kann man den Effekt sehen bei den Kategorien „Dübel, Farbe und Holzlatten“ für das Feld „Lieferant“ Dort habe ich jeweils die Details ausgeblendet und bekomme sie auch nur einzeln wieder rein. Entweder Doppelklick (auf das Item in der Spalte „Material“) oder in der Pivotleiste auf das Plus clicken. Das ist bei einer großen Pivot sehr, sehr mühsam.
https://www.herber.de/bbs/user/50211.xls
Frage: Kennt jemand eine Option, um Alle Details von Pivot Datenfeldern auf einen Schlag einzublenden. Bzw. Welcher VBA Befehl würde in meiner Makro Schleife diesen Effekt haben, daß alle Details einbeblendet werden. (Modul: „Detaileinblenden“). Bei meinem derzeitigen Code bekomme ich folgende Fehlermeldung: „Objekt unterstützt diese Eigenschaft nicht.“ Aber diese Eigenschaft ist mir vom Makrorekorder ausgegeben worden. Aus der VBA Hilfe kann ich leider auch nichts für meinen Fall herauslesen.
Vielen Dank für Eure Mühe,
Grüße, Andreas

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivottabelle - alle Details einblenden m. VBA Loop
26.02.2008 21:09:00
Luschi
Hallo Andreas,
wenn Du ein ToggleButton nimmst, dann geht's so:

Private Sub ToggleButton2_Click()
Dim pvItem As PivotItem, pvField As PivotField, pvTable As PivotTable, _
ok As Boolean, s As String
getMoreSpeed True
ok = Me.ToggleButton2.Value
Set pvTable = ActiveSheet.PivotTables("PivotTable1")
Set pvField = pvTable.PivotFields("Material")
For Each pvItem In pvField.PivotItems
pvItem.ShowDetail = ok
Next
If ok Then
s = "alle Anzeigen"
Else
s = "alle Ausblenden"
End If
Me.ToggleButton2.Caption = s
Set pvItem = Nothing
Set pvField = Nothing
Set pvTable = Nothing
getMoreSpeed False
End Sub
Sub getMoreSpeed(bDoIt As Boolean)
Application.ScreenUpdating = Not (bDoIt)
Application.EnableEvents = Not (bDoIt)
Application.Calculation = IIf(bDoIt, xlCalculationManual, xlCalculationAutomatic)
End Sub

Gruß von Luschi
aus klein-Paris

Anzeige
kleine Korrektur
26.02.2008 21:14:00
Luschi
Hallo Andreas,
bitte ändere dies noch ab:

If ok Then
s = "alle Ausblenden"
Else
s = "alle Anzeigen"
End If

Gruß von Luschi
aus klein-Paris

AW: kleine Korrektur
27.02.2008 10:53:00
Andreas
Hi Luschi,
dank für Deinen Code. Der ist komplizierter, als ich so dachte… er funktioniert gut. Ich hatte die Beispieldatei nicht ganz korrekt erstellt. Ich habe nun noch ein Datenfeld „Baustelle“ drin. Was ich meinte war, über eine Schleife jeweils alle Details zu allen Datenfeldern zu erhalten. Praktisch wieder einen Ursprungszustand der Ansicht. Ich habe nun exemplarisch ein paar Details in der Baustelle ausgeblendet. Wenn ich auf Lieferanten alle Details anzeigen gehe, dann zeigt er Buastellendetails nicht für Harry Bo und Meier. Weil ich bei diesen beiden einmal die Details ausgeblendet habe. Deswegen hatte ich ja auch die Idee mit der Schleife. Blende erst alle für die Lieferanten ein, dann alle für die Baustelle, etc. Unabhängig von vorherigen manuellen Einstellungen. Was mir heute noch eingefallen ist wäre zuerst eine Auswertung wo sich der Cursor/ die aktive Zelle befindet, diese wird ausgewertet und der Namen des Pivot Datenfeldes der aktiven Zelle wird als Variable an den Code zum Einblenden übergeben. So entfällt die Einschränkung auf ein Datenfeld, welches fest im Code hinterlegt ist. Ich habe aber keine Ahnung, wie man das Auslesen kann und auch im Forum nichts gefunden. Einzig der Hinweis auf Get.Cell klang viel versprechend.
Wenn dich dieser Ansatz interessiert, würde ich mich freuen, Deine Meinung bezüglich der Machbarkeit zu hören.
https://www.herber.de/bbs/user/50219.xls
Ansonsten danke ich Dir noch einmal für Deinen bisher geleisteten Einsatz und den guten Code!
Viele Grüße aus Berlin, Andreas

Anzeige
AW: kleine Korrektur
27.02.2008 11:34:00
Luschi
Hallo Andreas,
schaue mir das Problem heute Abend mal an.
Gruß von Luschi
aus klein-Paris

neue Version
27.02.2008 22:51:00
Luschi
Hallo Andreas,
hier mal die neue Version: https://www.herber.de/bbs/user/50247.xls
Habe ein neues ToggleButton eingefügt, mit dem nur alle Daten des Pivot-Zweiges voll sichtbar sind, indem der Cursor aktiv ist.
Gruß von Luschi
aus klein-Paris

AW: neue Version
29.02.2008 11:36:42
Andreas
Hallo Luschi,
ich bin begeistert! Danke, daß Du meinen Ansatz aufgenommen und den Code entwickelt hast. Es funktioniert genauso wie es mir vorschwebte. Aber wieder der Effekt für mich, daß der Code doch sehr komplex ist. Ich werde mir nun bei einem Kaffee die Zeit nehmen und versuchen ihn zu verstehen. Ich glaub das ist der erste Array Code den ich sehe...
Sehr gute Arbeit!
Vielen Dank und Grüße aus Berlin, Andreas Hanisch
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige