Herbers Excel-Forum - das Archiv

Pivot - Makro: Feldschaltflächen "Alle anzeigen"

Bild

Betrifft: Pivot - Makro: Feldschaltflächen "Alle anzeigen"
von: Beate Schmitz

Geschrieben am: 15.04.2005 20:46:58
Hallo Excelfreunde,
ich habe einen PivotTable-Bericht in einem separaten Arbeitsblatt. Dieses möchte ich aber immer aufgeräumt verlassen, d.h. per Worksheet_Deactivate Makro sollen alle Feldschaltflächen auf "alle anzeigen" zurückgesetzt werden, was ja etwas anderes ist als Pivot-Refresh. Per Makroaufnahme gelingt mir das nicht (außer beim Seitenfeld was ja nur alle oder einen zulässt). Gibt es da einen Code für?
Wer zu Testzwecken gerne eine Datei hat, die ist hochgeladen unter:
http://www.excel-center.de/foren/file.php?2,file=1962
Gruß,
Beate
PS: Diese Frage habe ich seit heute Mittag ohne Antwort im Excel-Center, deshalb ziehe ich jetzt mal um. Ich werde da einen Hinweis setzen.
Bild

Betrifft: alles.visible = true
von: GerhardW
Geschrieben am: 15.04.2005 22:38:17
Hi Beate,
versuche mal
Sub aufräumen()
Dim f, i
For Each f In Sheets("Pivot").PivotTables(1).PivotFields
For Each i In f.PivotItems
i.Visible = True
Next i
Next f
End Sub

Gruß Gerhard
Bild

Betrifft: Pivot - alles.visible = true
von: Beate Schmitz

Geschrieben am: 15.04.2005 23:48:31
Hallo Gerhard,
das sieht schon mal ziemlich gut aus. Da aber hiermit nicht die Auswahl der Seitenüberschrift aufgehoben wurde, habe ich es so ergänzt und das geht auch:
Sub aufräumen()
Dim f, i
'Alle anzeigen bei Seitenüberschrift:
ActiveSheet.PivotTables(1).PivotFields("Marke").CurrentPage = "(Alle)"
'Alle anzeigen bei anderen Feldern:
For Each f In Sheets("Pivot").PivotTables(1).PivotFields
For Each i In f.PivotItems
i.Visible = True
Next i
Next f
End Sub

Was noch nicht funktioniert: Wenn ich die Daten (wie im Beispiel) einmal als Summe und einmal als % habe, also verschiedene Berechnungen und vorher nur eine von beiden ausgewählt war, dann bleibt nach dem Makro die andere Berechnungsart weiterhin im Nirvana...
Wenn ich mir den Stand dann im PivotTable-Assistent-Layout anschaue, ist die jeweilige Feldschaltfläche einfach weg und müßte da neu angelegt werden. Das scheint sich auf einer anderen Ebene abzuspielen. Sollte dir da noch was zu einfallen, würde ich mich freuen.

Vielen Dank für deine Hilfe.
Gruß,
Beate
Bild

Betrifft: reset_anzahl
von: Rolf Beißner

Geschrieben am: 18.04.2005 11:50:00
Hallo Beate,
ist zwar ein bisschen umständlich,
löst aber hoffentlich das Problem.
Im übrigen kannst du dir m.E. Spalte 1 sparen,
wenn du die Datümer nach Monaten gruppierst.
Hoffe, es geht dir gut
Rolf
Sub reset_anzahl()
Dim p1 As PivotField
If ActiveSheet.PivotTables(1).DataFields.Count < 2 Then
Set p1 = ActiveSheet.PivotTables(1).AddDataField(ActiveSheet.PivotTables(1). _
PivotFields("Anzahl"))
p1.
Function = xlSum
If ActiveSheet.PivotTables(1).DataFields(1).Caption = "%" Then
p1.Caption = "Summe"
p1.NumberFormat = 0
Else
p1.Caption = "%"
p1.Calculation = xlPercentOfTotal
End If
End If
End Sub

Bild

Betrifft: Pivot: Datenfeld rekonstruieren
von: Beate Schmitz

Geschrieben am: 18.04.2005 16:33:29
Hallo Rolf,
ganz herzlichen Dank für deine Lösung. Genauso so habe ich es mir vorgestellt.
Mit der Gruppierung (Daten) hatte ich inzwischen selbst rausgefunden. Trotzdem Danke für den Hinweis.
Klasse Gemischtwarenhandel.
Sonst geht es gut, ich hoffe dir auch.
Gruß,
Beate
 Bild