Pivot-Wertebereich effizient kopieren
Schritt-für-Schritt-Anleitung
Um Daten aus einer Pivot-Tabelle zu kopieren, ohne die gesamte Pivot zu duplizieren, kannst Du den folgenden VBA-Code verwenden. Dieser Code kopiert den Wertebereich einer Pivot-Tabelle in ein neues Tabellenblatt.
- Öffne Excel und drücke
ALT
+ F11
, um den VBA-Editor zu öffnen.
- Klicke auf
Einfügen
> Modul
, um ein neues Modul zu erstellen.
- Kopiere den folgenden Code in das Modul:
Sub CopyPivotRange()
Dim pvTab As PivotTable
Dim wksZ As Worksheet
Dim rngCopy As Range
Dim iFehler As Integer
Dim msgText$, msgTitle$
On Error GoTo fehler
iFehler = 1
Set pvTab = ActiveCell.PivotTable 'oder ActiveSheet.PivotTables(1)
Set rngCopy = pvTab.TableRange1 'gesamte Pivottabelle ohne Seitenfelder
iFehler = 2
Set wksZ = ActiveWorkbook.Worksheets.Add(After:=ActiveSheet)
wksZ.Name = "Auswertung"
rngCopy.Copy
With wksZ.Range("A1")
.PasteSpecial xlPasteColumnWidths
.PasteSpecial xlPasteFormats
.PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
Exit Sub
fehler:
With Err
msgText = "Fehler-Nr.: " & .Number & vbLf & .Description
msgTitle = "Makro: Copy_PivotRange-Fehler"
Select Case .Number
Case 1004
Select Case iFehler
Case 1
msgText = msgText & vbLf & "Bitte eine Zelle in der zu kopierenden Pivot-Tabelle auswählen."
MsgBox msgText, vbOKOnly + vbInformation, msgTitle
Case 2
msgText = msgText & vbLf & "Das Blatt ""Auswertung"" existiert bereits. Möchtest Du fortfahren?"
If MsgBox(msgText, vbYesNo + vbQuestion, msgTitle) = vbYes Then
Resume Next
Else
Application.DisplayAlerts = False
wksZ.Delete
Application.DisplayAlerts = True
End If
End Select
Case Else
MsgBox msgText, vbOKOnly, msgTitle
End Select
End With
End Sub
- Schließe den VBA-Editor.
- Wähle eine Zelle innerhalb Deiner Pivot-Tabelle aus.
- Drücke
ALT
+ F8
, wähle CopyPivotRange
und klicke auf Ausführen
.
Häufige Fehler und Lösungen
Alternative Methoden
-
Pivot-Tabelle kopieren ohne Bezug:
Du kannst die Pivot-Tabelle auch manuell kopieren, indem Du den Wertebereich auswählst, mit STRG
+ C
kopierst und mit STRG
+ V
einfügst. Dabei wird die Pivot-Tabelle jedoch nicht dupliziert.
-
Pivot-Tabelle kopieren ohne Verknüpfung:
Verwende Paste Special
und wähle Werte
, um sicherzustellen, dass keine Verknüpfungen zur ursprünglichen Pivot-Tabelle bestehen.
Praktische Beispiele
-
Beispiel 1: Du hast eine Pivot-Tabelle mit Verkaufsdaten und möchtest nur die Werte für einen bestimmten Zeitraum in ein neues Blatt kopieren. Wähle die Zelle in der Pivot-Tabelle aus und führe das obige Makro aus.
-
Beispiel 2: Wenn Du die Pivot-Tabelle für mehrere Monate analysieren möchtest, kannst Du das Makro mehrmals ausführen und jeweils den Wertebereich für den gewünschten Monat kopieren.
Tipps für Profis
-
Automatisierung: Du kannst das Makro anpassen, um automatisch den Namen des neuen Blattes basierend auf dem aktuellen Datum oder einem anderen Kriterium zu generieren.
-
Fehlerbehandlung erweitern: Füge zusätzliche Fehlerbehandlungen für spezifische Szenarien hinzu, um die Robustheit Deines Makros zu erhöhen.
-
Formatierung: Wenn Du die Pivot-Tabelle kopieren möchtest, ohne die Formatierung zu verlieren, nutze xlPasteAllUsingSourceTheme
.
FAQ: Häufige Fragen
1. Kann ich das Makro auch in Excel Online verwenden?
Das VBA-Makro funktioniert nur in der Desktop-Version von Excel. Excel Online unterstützt keine VBA.
2. Wie kann ich den kopierten Wertebereich automatisch aktualisieren?
Um den kopierten Bereich automatisch zu aktualisieren, musst Du das Makro so anpassen, dass es auch den aktuellen Filter der Pivot-Tabelle berücksichtigt.
3. Ist es möglich, mehrere Pivot-Tabellen gleichzeitig zu kopieren?
Ja, Du kannst das Makro erweitern, um durch alle Pivot-Tabellen im aktuellen Arbeitsblatt zu iterieren und diese nacheinander zu kopieren.