Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pivot Tabelle in Array auslesen & neu erstellen

Pivot Tabelle in Array auslesen & neu erstellen
12.02.2009 19:20:00
Andreas
Hallo Herber Fans,
da PivotTabellen sich nicht immer rational verhalten, ist es zuweilen notwendig, diese zu löschen und komplett neu aufzubauen, damit sie wieder fehlerlos sind und andere VBA Codes die mit ihnen arbeiten, nicht zum Absturz bringen.
Was ich nun realisierte, war ein Code, der die aktuelle PivotTabelle komplett löscht und eine neue wieder einfügt. Das klappt auch alles.
Was ich nun noch realisieren wollte: Bevor die Pivot gelöscht wird, werden alle Felder durchlaufen und deren Namen, Orientation und Position in ein dreizeiliges Array geschrieben. Wenn die neue Tabelle erstellt wurde, soll das Array seine Informationen wieder preisgeben und die Tabelle wieder exakt so aufbauen wie die gelöschte (fehlerhafte) Tabelle.
Aber ich scheitere an den DataFields und deren Orientation als Columnfield. Vermutlich ist es nicht so kompliziert, aber ich komme leider nicht drauf.
Ich habe einmal eine Beispieltabelle angefügt, die also ausgelesen und deren Aufbau auf die neu eingefügte Tabelle übertragen werden soll.

Die Datei https://www.herber.de/bbs/user/59403.xls wurde aus Datenschutzgründen gelöscht


Ich würde mich sehr freuen, wenn ich aus dem Forum eine Anregung erhalte, wie das gelöst werden kann.
Vielen Dank und Grüße, Andreas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Pivot Tabelle neu erstellen
12.02.2009 20:38:00
Beate
Hallo Andreas,
warum löschst du nicht die alte Pivottabelle und baust sie neu per Code auf? Nach deiner Methode würdest du ja auch existente Fehler (von denen du schreibst) übernehmen.
Hier mal deine Beispieldatei. Benutze den Button im Blatt Testpivot:
https://www.herber.de/bbs/user/59407.xls
Gruß,
Beate
Wichtiger Nachtrag
12.02.2009 20:41:00
Beate
Hallo Andreas,
bei der hochgeladenen Datei läuft der Code nicht, da du den Dateinamen im Code hattest und der hat sich ja hochgezählt bis zu meinem Upload.
Deshalb ersetze mein Makro hierdurch:
Sub Test()
    Columns("A:E").Clear
    
    
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "Tabelle1!R1C1:R26C6").CreatePivotTable TableDestination:= _
        "'TestPivot'!R1C1", TableName:="PivotTable7", DefaultVersion _
        :=xlPivotTableVersion10
    ActiveSheet.PivotTables("PivotTable7").AddFields RowFields:=Array("Material", _
        "Daten"), ColumnFields:="Interne/ externe Kosten", PageFields:="Baustelle"
    With ActiveSheet.PivotTables("PivotTable7").PivotFields("Planverbrauch")
        .Orientation = xlDataField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable7").PivotFields("Istverbrauch").Orientation _
        = xlDataField
    ActiveWorkbook.ShowPivotTableFieldList = False
    Range("B4").Select
    With ActiveSheet.PivotTables("PivotTable7").DataPivotField
        .Orientation = xlColumnField
        .Position = 1
    End With
    'Range("F6").Select
    ActiveSheet.PivotTables("PivotTable7").ColumnGrand = False
    With ActiveSheet.PivotTables("PivotTable7")
        .ColumnGrand = True
        .RowGrand = False
    End With
    Range("A3").Select
End Sub


Gruß,
Beate
Anzeige
AW: Wichtiger Nachtrag
13.02.2009 12:04:00
Andreas
Hallo Beate,
vielen Dank für Deine Antwort. Aber der von Dir vorgeschlagene Weg ist nicht möglich, da dieser inflexibel ist. Dies ist eine Beispieltabelle um eine Lösung zu finden. Der Code soll aber in Tabellen zum Einsatz kommen, die keinen festen Bauplan haben, den ich per VBA hinterlegen könnte. Es sind zum Teil sehr große Tabelle die ich mir aufbaue und die Felder frei kombiniere. D.h. es ist absolut notwendig, den "Bauplan" erst auszulesen und dann in einer neuen Tabelle wieder einzubringen.
Ich werde mir Deinen Code weiter ansehen und probieren.
Habe ein schönes Wochenende. Viele Grüße, Andreas
Anzeige

335 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige