Datenschnitt in Pivot-Daten drucken und als PDF speichern
Schritt-für-Schritt-Anleitung
Um alle Elemente eines Datenschnitts in einer Pivot-Tabelle zu drucken und sie als eine einzige PDF-Datei zu speichern, kannst Du die folgenden Schritte ausführen:
-
VBA-Editor öffnen:
- Drücke
ALT + F11
, um den VBA-Editor in Excel zu öffnen.
-
Ein neues Modul hinzufügen:
- Klicke im Menü auf
Einfügen
und wähle Modul
.
-
Makros einfügen:
- Kopiere die folgenden VBA-Codes in das Modul:
Sub DatenSchnitteDrucken()
Dim objSlicerItem As SlicerItem, objSlicerCache As SlicerCache
Dim intItem As Integer
Dim wks As Worksheet
Set wks = ActiveSheet
Set objSlicerCache = ActiveWorkbook.SlicerCaches("Datenschnitt_Feld03") ' Name anpassen
objSlicerCache.ClearManualFilter
If objSlicerCache.SlicerItems.Count > 1 Then
For intItem = 2 To objSlicerCache.SlicerItems.Count
objSlicerCache.SlicerItems(intItem).Selected = False
Next
wks.PrintOut
For intItem = 2 To objSlicerCache.SlicerItems.Count
objSlicerCache.SlicerItems(intItem).Selected = True
objSlicerCache.SlicerItems(intItem - 1).Selected = False
wks.PrintOut
Next
Else
wks.PrintOut
End If
End Sub
Sub DatenSchnitteMakePDFs()
Dim objSlicerItem As SlicerItem, objSlicerCache As SlicerCache
Dim intItem As Integer, strNamePDF
Dim wks As Worksheet
Set wks = ActiveSheet
Set objSlicerCache = ActiveWorkbook.SlicerCaches("Datenschnitt_Feld03") ' Name anpassen
objSlicerCache.ClearManualFilter
If objSlicerCache.SlicerItems.Count > 1 Then
For intItem = 2 To objSlicerCache.SlicerItems.Count
objSlicerCache.SlicerItems(intItem).Selected = False
Next
strNamePDF = ActiveWorkbook.Path & "\" & Format(1, "0000") & objSlicerCache.SlicerItems(1).Name & ".pdf"
wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strNamePDF, Quality:=xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, openafterpublish:=False
For intItem = 2 To objSlicerCache.SlicerItems.Count
objSlicerCache.SlicerItems(intItem).Selected = True
objSlicerCache.SlicerItems(intItem - 1).Selected = False
strNamePDF = ActiveWorkbook.Path & "\" & Format(intItem, "0000") & objSlicerCache.SlicerItems(intItem).Name & ".pdf"
wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strNamePDF, Quality:=xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, openafterpublish:=False
Next
Else
strNamePDF = ActiveWorkbook.Path & "\" & Format(1, "0000") & objSlicerCache.SlicerItems(1).Name & ".pdf"
wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strNamePDF, Quality:=xlQualityStandard, includedocproperties:=True, ignoreprintareas:=False, openafterpublish:=False
End If
End Sub
-
Makros anpassen:
- Stelle sicher, dass der Name des Datenschnitts im Code korrekt ist (z. B. "Datenschnitt_Feld03").
-
Makros ausführen:
- Schließe den VBA-Editor und führe das Makro
DatenSchnitteMakePDFs
aus, um die PDFs zu erstellen.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn Du keine VBA-Makros verwenden möchtest, kannst Du die einzelnen Elemente des Datenschnitts manuell auswählen und jeweils drucken oder speichern, jedoch ist dies bei einer großen Anzahl von Elementen wenig praktikabel. Eine weitere Möglichkeit ist, spezielle Softwaretools zu verwenden, die das Batch-Drucken unterstützen.
Praktische Beispiele
Angenommen, Du hast einen Datenschnitt mit 200 Elementen. Mit dem oben genannten Makro kannst Du alle Elemente in einer einzigen PDF-Datei speichern, ohne sie manuell auswählen zu müssen. Dies spart Zeit und minimiert Fehlerquellen.
Tipps für Profis
- Makro anpassen: Du kannst das Makro erweitern, um zusätzliche Filteroptionen oder spezifische Druckeinstellungen zu integrieren.
- Batch-Prozesse: Überlege, ob Du eine Batch-Prozessierung implementieren möchtest, um regelmäßig Druckaufträge automatisch auszuführen.
- Testen: Teste das Makro immer mit einer kleinen Anzahl an Elementen, bevor Du es auf eine große Datenmenge anwendest.
FAQ: Häufige Fragen
1. Kann ich die PDF-Datei an einen bestimmten Speicherort speichern?
Ja, Du kannst den Speicherort im Makro anpassen, indem Du den Pfad in der strNamePDF
-Variable änderst.
2. Ist es möglich, das Makro für unterschiedliche Datenschnitte zu verwenden?
Ja, Du kannst das Makro für verschiedene Datenschnitte verwenden, indem Du einfach den Namen des Datenschnitts im Code anpasst.