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

Datenschnitt Pivot, jedes Element drucken

Forumthread: Datenschnitt Pivot, jedes Element drucken

Datenschnitt Pivot, jedes Element drucken
05.01.2014 12:27:14
Tim
Hallo zusammen,
in einer Pivot habe ich einen Datenschnitt eingefügt. Ich möchte jetzt, dass jedes Element des Datenschnitts ( sind mindestens 200) aufgerufen und gedruckt wird ( ggf. zunächst als PDF abgespeichert wird, jedoch dann als eine PDF-Datei und nicht mehrere).
Die Elemente des Datenschnitts sind nicht fix, sondern können sich von Update zu Update entsprechend verändern, Elemente fallen weg oder es kommen neue hinzu.
Vermutlich funktioniert das nur über VBA, bloß wie am einfachsten?
Danke

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenschnitt Pivot, jedes Element drucken
06.01.2014 01:09:52
fcs
Hallo Tim,
alle Ausdrucke in ein PDF-File funktioniert nicht ohne weiteres.
Hier ist es einfacher, alle Datenschnitte in Einzeldateien zu speichern und diese dann mit einem Tool (z.B. Adobe Acrobat oder FreePDF-Join) in einer PDF-Datei zusammenzufassen.
Nachfolgend 2 Makros, die du bezüglich des Namens des Datenschnitts noch anpassen musst.
Gruß
Franz
Sub DatenSchnitteDrucken()
' Datenschnitte Drucken
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, _
ggf. mit Makrorekorder Datenschnittselektion aufzeichnen.
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()
' Datenschnitte  als PDFs speichern
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, _
ggf. mit Makrorekorder Datenschnitt-Filterselektion aufzeichnen.
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

Anzeige
AW: Datenschnitt Pivot, jedes Element drucken
07.01.2014 19:42:55
Tim
Hallo Franz,
super, vielen Dank. Klappt wunderbar!
Gruß Tim
;
Anzeige

Infobox / Tutorial

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:

  1. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Ein neues Modul hinzufügen:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. 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
  1. Makros anpassen:

    • Stelle sicher, dass der Name des Datenschnitts im Code korrekt ist (z. B. "Datenschnitt_Feld03").
  2. 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

  • Fehler: "Runtime Error" beim Ausführen des Makros:

    • Überprüfe, ob der Name des Datenschnitts korrekt im Code angegeben ist.
  • Fehler: PDF wird nicht erstellt:

    • Stelle sicher, dass der Pfad, in dem die PDF gespeichert werden soll, existiert und Du Schreibrechte hast.

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige