Excel 2010 - Einstellungen einer Pivottabelle auslesen

Allan Sche Sar

Lt. Commander
Registriert
Jan. 2004
Beiträge
1.891
Hallo ihr,

ich melde mich mit einem neuem Problem wieder. Mein Ziel ist es die gewählten Einstellungen einer Pivottabelle zum Beispiel in einem zusätzlichen Tabellenblatt abzuspeichern, damit man später alles nachverfolgen kann.
Nun habe ich mir den VBA Code für diese Pivottabelle einmal aufgezeichnet, aber ich brauch ja genau den Schritt rückwärts.

Wie lese ich aus einer fertig erstellten Pivottabelle die Einstellungen aus?

Im Anhang findet ihr eine Beispieldatei
 

Anhänge

  • Pivot auslesen.JPG
    Pivot auslesen.JPG
    34,6 KB · Aufrufe: 301
  • Pivot auslesen.xlsx
    13,9 KB · Aufrufe: 305
Ich würde das an XL abzuwälzen versuchen:
Makro Aufzeichnen starten, an der Pivot was ändern und zurückändern, Aufzeichnen stoppen.
Das solle eine Info liefern wie XL die Pivot anspricht. Damit kann man im VBA-Code spielen welche Attribute man so anfassen kann.

Das Aufzeichnen eines Anlegens einer neuen Pivot sollte doch allen Code liefern… Sinngemäß [k.A. was VBA da konkret kodiert] Pivot("Müller").Name = "Ottokar". Also muss der ›inverse‹ Code nur wissen, dass die zu spiegelnde Pivot auf auf den Rufnamen "Müller" horcht. Dann wird das einer Variablen zugewiesen(*): PivotName = Pivot("Müller").Name. leibt nur wie man diese Infos auch praktisch einsetzt eine neue Pivot zu zu konfigurieren. Die Quelle müsste aktiv greifbar sein oder ich lege das Ausgelesene als CSV ab derer ich mich bediene eine neue Pivot einzurichten.

CN8

(*) Ja, das könnte eine längere Liste ergeben - ich speichere auf diese Tour in Word die Sucheinstellungen um sie nach Makro-Maßnahmen zurückzuschreiben. War schon ein Häuflein Arbeit…
 
An den Schritt rückwärts habe ich ja auch schon gedacht, aber wenn ich mir die Pivottabelle aufzeichnen lasse, dann erhalte ich zum Beispiel ein Kriterium, dass wie folgt aussieht:

Code:
    With ActiveSheet.PivotTables("PivotTable2").PivotFields( _
        "Mittelwert von Messwert")
        .Caption = "Maximum von Messwert"
        .Function = xlMax
    End With

Ich muss nun die drei Werte kennen, um die Pivottabelle wieder herzustellen. Aber ich kann keine Funktionen im VBA Code finden, mit dem ich mit zum Beispiel
Code:
ActiveSheet.PivotTables("PivotTable2").PivotFields("Mittelwert von Messwert").Function
ausgeben lassen kann. Das leuchtet mir auch nach deiner Erklärung nicht ein.
 
Dann wollen wir mal aus der Hand hintippen…

{Zunächst mal ist alles was «Active» im Namen hat ein Unklarheitsrisiko - denn «Activaten» («Selecten») sollte man meiden wie die Pest.}

Ich setze mal voraus, dass du weiß wie man Variablem DIMt.
Weiterhin mögen wir uns nach besagter Aufzeichnung auf einem von mir soeben getauften Blatt Hans befinden. Wichtig insoweit ist zu wissen, dass unsere Pivot auf "PivotTable2" horcht. Bisher fehlt das Grundgerüst, dass ich am Ziel auch eine Pivot haben muss die ich per Makro anfassen kann. Wenn du den Anlegecode aufzeichnest muss der natürlich mit eingefolchten werden.

Code:
With Worksheets("Hans").PivotTables("PivotTable2").PivotFields("Mittelwert von Messwert")
 Beschriftung = .Caption ' offenbar String
 Funktion = .Function ' sicherlich Integer
End With
With Worksheets("Klaus").PivotTables("PivotTable777").PivotFields("Mittelwert von Schätzwert")
 .Caption = Beschriftung
 .Function = Funktion
End With
Wie gesagt müsste auf ‹Klaus› irgendwie eine ‹PivotTable777› existieren die über ein Feld ‹Mittelwert von Schätzwert› verfügt. Ein Neuanlegecode könnte das, eine Eingabefunktion könnte den ZielBlatt-Namen abfragen.

Das war nur ganz grob das Konzept. Ich könnte mir vorstellen, dass eine Mappe die Muster-Pivot vorhält die sogar über Mappen hinweg ihre Zustände überträgt.

Ich muss nun die drei Werte kennen, um die Pivottabelle wieder herzustellen. Aber ich kann keine Funktionen im VBA Code finden, mit dem ich mit zum Beispiel
Im Grunde gibt es die schon… Aber das ist ein recht sinnloses Stochern im Nebel. Du kannst gerne per Schleife alle Pivots (auf dem Blatt) abklappern und dann mit Unterschleifen Felder samt deren Function. Aber von dem Wissen (glaube mir, ich liebe Excel deswegen innig…) kannst du dir nichts kaufen da du nicht direkt einen Namen beim Erzeugen anlegen kannst - und so auch nicht weißt welche denn nun die ist die sich gerade in der Manche befindet [außer Einzelschritt und beobachten wie sich im Blatt eine bestimmte Veränderung sichtbar zeigt]. Du wirst den Namen tumb abfischen müssen um ihn dann hart zu kodieren.

CN8
 
Zuletzt bearbeitet: (Hälfte vergessen…)
Zurück
Oben