Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Pivot Tabelle in normale Tabelle umwandeln

Pivot Tabelle in normale Tabelle umwandeln
29.08.2014 18:20:07
dip
Hallo Allerseits,
Gerne würde ich folgende Problemstellung in das Forum einbringen, in der Hoffnung, jemand kennt die Lösung dazu :-)
Ich habe ein Excel File mit einer Pivot Tabelle. Da der Pivot Tabelle eine grosse Menge an Daten zugrunde liegt inkl. Verbindung zu einer Access Datenbank, möchte ich das Pivot in eine ganz normale Tabelle umwandeln, damit einerseits das Dokument nur die angezeigten Werte enthält und somit das File keine mehrere MB gross ist und andererseis die Verbindung zur Access Datenbank nicht mehr besteht.
Ganz genial wäre es, wenn die Schaltflächen zum erweitern/reduzieren beibehaltet werden können.
Ich stelle mir das zusammen mit einem Makrobutton vor, "Pivot Tabelle exportieren".
Wenn der Benutzer auf diesen Makrobutton klickt, dann wird die Pivot Tabelle in ein neues Excel File als Tabelle kopiert und er kann das File wo er möchte abspeichern.
Wäre dies so möglich? Oder gäbe es andere Möglichkeiten?
Bin für jeden Tipp/Hilfe sehr dankbar!
Beste Grüsse
Patrick

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Pivot Tabelle in normale Tabelle umwandeln
31.08.2014 12:49:13
fcs
Hallo Patrick,
das Kopieren eines Pivotdatenbereichs ist kein Problem.
Erweitern/reduzieren ist jedoch eine Pivot-Funtion, die nicht kopierfähig ist.
Die Dateigröße kannst ggf. schon reduzieren indem du unter den Pivotoptionen im Register "Daten" die Option "Quelldaten mit Satei speichern" deaktivierst.
Gruß
Franz
Makros zum übertragen der Pivot-Tabelle in eine neue Datei
Sub CopyPivotIntoNewFile_1()
Dim pvTab As PivotTable
Dim wksZiel As Worksheet
Set pvTab = ActiveSheet.PivotTables(1)
Workbooks.Add Template:=xlWBATWorksheet
Set wksZiel = ActiveWorkbook.Worksheets(1)
pvTab.TableRange2.EntireColumn.Copy
With wksZiel.Cells(1, 1)
.PasteSpecial Paste:=xlPasteFormats
.PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
Range(pvTab.DataBodyRange.Range("A1").Address).Select
ActiveWindow.FreezePanes = True
End Sub
Sub CopyPivotIntoNewFile_2()
Dim pvTab As PivotTable
Dim wbZiel As Workbook, wksZiel As Worksheet
ActiveSheet.Copy
Set wbZiel = ActiveWorkbook
Set wksZiel = wbZiel.Worksheets(1)
Set pvTab = wksZiel.PivotTables(1)
If wbZiel.Connections.Count > 0 Then
wbZiel.Connections(1).Delete
End If
'bis hier sieht die Tabelle optisch noch wie die Pivot-Tabelle aus, _
sie hat aber keine Dazenquelle mehr und Pivot-Befehle funktionieren nicht mehr
Exit Sub 'Diese Zeile löschen, wenn Pivotformatierungen entfernt werden sollen
'die folgenden Zeilen entdernen dann pivotspezifische Formate
wksZiel.UsedRange.Copy
wksZiel.UsedRange.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub

Anzeige
AW: Pivot Tabelle in normale Tabelle umwandeln
01.09.2014 10:17:27
dip
Guten Tag Franz,
Herzlichen Dank für die Makros und den Tipp!
Wie könnte man den Befehl "Quelldaten mit Datei speichern deaktivieren" in das Makro Nr. 2 einbinden?
Es ist zu beachten, dass pro Sheet mehrere Pivots vorhanden sein könnten...
Danke und Beste Grüsse
Patrick

Anzeige
AW: Pivot Tabelle in normale Tabelle umwandeln
01.09.2014 11:27:37
dip
... und vorhandene Verknüpfungen auch alle entfernt werden?...
Beste Grüsse
Patrick

AW: Pivot Tabelle in normale Tabelle umwandeln
01.09.2014 12:55:41
fcs
Hallo Patrick,
und hier dann mit Entfernen der Verknüpfungen
Gruß
Franz
Sub CopyPivotIntoNewFile_2()
Dim pvTab As PivotTable
Dim wbZiel As Workbook, wksziel As Worksheet
Dim varAuswahl As Variant, varElement As Variant
ActiveSheet.Copy
Set wbZiel = ActiveWorkbook
Set wksziel = wbZiel.Worksheets(1)
'Pivottabellen ohne Quelldaten speichern
For Each pvTab In wksziel.PivotTables
pvTab.SaveData = False
Next
'alle Datenverbindungen löschen
Do Until wbZiel.Connections.Count = 0
wbZiel.Connections(wbZiel.Connections.Count).Delete
Loop
'alle Excelverknüpfungen löschen
If Not IsEmpty(wbZiel.LinkSources(Type:=xlExcelLinks)) Then
For Each varAuswahl In wbZiel.LinkSources(Type:=xlExcelLinks)
wbZiel.BreakLink Name:=varAuswahl, Type:=xlLinkTypeExcelLinks
Next
End If
'alle OLE-Links löschen
If Not IsEmpty(wbZiel.LinkSources(Type:=xlOLELinks)) Then
For Each varAuswahl In wbZiel.LinkSources(Type:=xlOLELinks)
wbZiel.BreakLink Name:=varAuswahl, Type:=xlLinkTypeOLELinks
Next
End If
varAuswahl = Application.Dialogs(xlDialogSaveAs).Show
'bis hier sieht die Tabelle optisch noch wie die Pivot-Tabelle aus, _
sie hat aber keine Dazenquelle mehr und Pivot-Befehle funktionieren nicht mehr
Exit Sub 'Diese Zeile löschen, wenn Pivotformatierungen entfernt werden sollen
'die folgenden Zeilen entfernen dann pivotspezifische Formate
wksziel.UsedRange.Copy
wksziel.UsedRange.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub

Anzeige
AW: Pivot Tabelle in normale Tabelle umwandeln
02.09.2014 13:03:36
dip
Guten Tag Franz,
Vielen herzlichen Dank, dein Makro funktioniert genau wie es soll!
Damit hast Du mir sehr weitergeholfen in meiner Arbeit :-)
Nochmals Dankeschön für deine Hilfe und wünsche Dir einen schönen Tag!
Beste Grüsse
Patrick

AW: Pivot Tabelle in normale Tabelle umwandeln
01.09.2014 12:31:46
fcs
Hallo Patrick,
Wie könnte man den Befehl "Quelldaten mit Datei speichern deaktivieren" in das Makro Nr. 2 einbinden?
Das müssste dann vor dem Löschen der Daten-Verbindung passieren, dann danach gibt es keine Quelldaten mehr bzw. der Pivto-Bericht ist bis auf ein parr Formatierungsreste hinüber.
Ich hab aber keine Ahnung, ob da im Hintergund noch irgendwelche großen Daten in der Datei rumliegen. Ich hab das nur mit einer Klitzekleinen Datenbank (3 Datensätze mit 7 Feldern) gettestet.
Es ist zu beachten, dass pro Sheet mehrere Pivots vorhanden sein könnten...
Dann muss man ggf. in einer Schleife mehrere Datenverbindungen kappen.
Gruß
Franz
Sub CopyPivotIntoNewFile_2()
Dim pvTab As PivotTable
Dim wbZiel As Workbook, wksziel As Worksheet
Dim varAuswahl As Variant
ActiveSheet.Copy
Set wbZiel = ActiveWorkbook
Set wksziel = wbZiel.Worksheets(1)
For Each pvTab In wksziel.PivotTables
pvTab.SaveData = False
Next
Do Until wbZiel.Connections.Count = 0
wbZiel.Connections(wbZiel.Connections.Count).Delete
Loop
varAuswahl = Application.Dialogs(xlDialogSaveAs).Show
'bis hier sieht die Tabelle optisch noch wie die Pivot-Tabelle aus, _
sie hat aber keine Dazenquelle mehr und Pivot-Befehle funktionieren nicht mehr
Exit Sub 'Diese Zeile löschen, wenn Pivotformatierungen entfernt werden sollen
'die folgenden Zeilen entfernen dann pivotspezifische Formate
wksziel.UsedRange.Copy
wksziel.UsedRange.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Pivot Tabelle in normale Tabelle umwandeln


Schritt-für-Schritt-Anleitung

Um eine Pivot Tabelle in eine normale Tabelle umzuwandeln, befolge diese Schritte:

  1. Öffne Dein Excel-Dokument, das die Pivot Tabelle enthält.
  2. Kopiere die Pivot Tabelle:
    • Klicke auf die Pivot Tabelle.
    • Drücke Strg + C, um die Tabelle zu kopieren.
  3. Füge die Pivot Tabelle als Werte ein:
    • Klicke auf eine neue Stelle in Deinem Arbeitsblatt oder in einem neuen Arbeitsblatt.
    • Rechtsklicke und wähle "Inhalte einfügen" > "Werte", um die Daten ohne Verknüpfungen einzufügen.
  4. Entferne die Pivot-Funktionen:
    • Klicke auf die eingefügten Daten und stelle sicher, dass keine Pivot-spezifischen Formatierungen mehr vorhanden sind.

Alternativ kannst Du auch ein VBA-Makro verwenden, um die Pivot Tabelle in eine normale Tabelle umzuwandeln. Der folgende Code hilft Dir dabei:

Sub CopyPivotIntoNewFile()
    Dim pvTab As PivotTable
    Dim wbZiel As Workbook
    Dim wksZiel As Worksheet
    ActiveSheet.Copy
    Set wbZiel = ActiveWorkbook
    Set wksZiel = wbZiel.Worksheets(1)

    For Each pvTab In wksZiel.PivotTables
        pvTab.SaveData = False
    Next

    wksZiel.UsedRange.Copy
    wksZiel.UsedRange.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub

Häufige Fehler und Lösungen

  • Fehler: Die Pivot-Tabelle enthält weiterhin Verknüpfungen.

    • Lösung: Stelle sicher, dass Du die Funktion pvTab.SaveData = False im Makro verwendest, um die Quelldaten zu entfernen.
  • Fehler: Nach dem Kopieren fehlen Formatierungen.

    • Lösung: Füge die Pivot Tabelle zuerst als Werte ein und wende dann manuell die gewünschten Formatierungen an.

Alternative Methoden

Wenn Du die Pivot Tabelle in eine normale Tabelle umwandeln möchtest, gibt es mehrere Methoden:

  • Excel-Funktion "Werte einfügen": Dies ist die einfachste Methode. Du kannst einfach die Pivot Tabelle kopieren und als Werte in ein neues Blatt einfügen.
  • Export-Funktion: Mit VBA kannst Du auch ein Makro erstellen, das die Pivot Tabelle exportiert und gleichzeitig die Verknüpfungen entfernt.

Praktische Beispiele

  1. Beispiel 1: Kopiere eine Pivot Tabelle, die Verkaufszahlen auswertet, und füge sie als normale Tabelle für die Berichterstattung ein.
  2. Beispiel 2: Verwende das VBA-Makro, um mehrere Pivot Tabellen auf einmal in normale Tabellen zu konvertieren, besonders nützlich bei großen Datenmengen.

Tipps für Profis

  • Wenn Du regelmäßig Pivot Tabellen in normale Tabellen umwandeln musst, erwäge, das VBA-Makro in Deinen Arbeitsablauf zu integrieren.
  • Teste verschiedene Methoden, um herauszufinden, welche für Deine spezifischen Daten am besten geeignet ist.
  • Halte Deine Pivot Tabelle und die normale Tabelle in einem separaten Arbeitsblatt, um die Übersichtlichkeit zu wahren.

FAQ: Häufige Fragen

1. Wie kann ich eine Pivot-Tabelle ohne Datenquelle kopieren?
Nutze das VBA-Makro, um die Daten zu kopieren und die Verknüpfungen zu entfernen.

2. Funktionieren die Schaltflächen zum Erweitern/Reduzieren nach dem Kopieren?
Nein, diese Funktionen sind spezifisch für Pivot Tabellen und gehen beim Umwandeln in eine normale Tabelle verloren.

3. Kann ich das Makro anpassen, um mehrere Pivot Tabellen auf einmal zu verarbeiten?
Ja, passe die Schleife im Makro an, um durch alle Pivot Tabellen im Arbeitsblatt zu iterieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige