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

Beiträge aus den Excel-Beispielen zum Thema "Ausgeblendete Zeilen nicht berücksichtigen"