SaveAsPDF

Sie möchten Excel-Arbeitsblätter einzeln als PDF speichern? In Excel können Sie ein einzelnes Tabellenblatt manuell als PDF exportieren. Wenn Sie jedoch mehrere oder alle Arbeitsblätter einer Excel-Datei als separate PDF-Dateien speichern möchten, ist ein VBA-Makro wesentlich schneller.

In dieser Anleitung zeigen wir Ihnen beide Möglichkeiten:

  • Ein einzelnes Excel-Arbeitsblatt manuell als PDF speichern
  • Alle Excel-Arbeitsblätter automatisch als separate PDF-Dateien speichern
  • PDF-Dateien automatisch nach dem Namen des jeweiligen Tabellenblatts benennen

Excel-Arbeitsblätter einzeln als PDF speichern – mit und ohne VBA

Methode 1: Einzelnes Excel-Arbeitsblatt als PDF speichern

Wenn Sie nur ein einzelnes Tabellenblatt als PDF benötigen, können Sie dieses direkt über Speichern unter beziehungsweise Exportieren als PDF speichern.

Schritt 1: Gewünschtes Arbeitsblatt auswählen

Öffnen Sie die Excel-Datei und aktivieren Sie das Arbeitsblatt, das Sie als PDF speichern möchten. In unserem Beispiel exportieren wir das Tabellenblatt Sales.

Excel-Arbeitsblatt auswählen und als PDF speichern

Schritt 2: PDF als Dateityp auswählen

Klicken Sie auf Datei > Speichern unter und wählen Sie den gewünschten Speicherort.

Geben Sie einen Dateinamen ein und wählen Sie bei Dateityp beziehungsweise Speichern als Typ das Format PDF (*.pdf).

Excel Arbeitsblatt über Speichern unter als PDF exportieren

Schritt 3: Arbeitsblatt als PDF speichern

Klicken Sie auf Speichern. Excel erstellt nun aus dem ausgewählten Arbeitsblatt eine PDF-Datei.

Die PDF-Datei finden Sie anschließend im gewählten Ordner.

Von Excel exportierte PDF-Datei im Zielordner

Das Ergebnis sieht beispielsweise wie folgt aus:

Excel Tabellenblatt als fertige PDF-Datei

Nachteil dieser Methode: Wenn Ihre Arbeitsmappe beispielsweise 20 Tabellenblätter enthält und jedes Arbeitsblatt als eigene PDF-Datei gespeichert werden soll, müssten Sie diesen Vorgang 20-mal wiederholen.

In diesem Fall ist die automatische Variante mit VBA wesentlich effizienter.

Methode 2: Alle Excel-Arbeitsblätter einzeln als PDF speichern mit VBA

Mit einem kurzen VBA-Makro können Sie alle Arbeitsblätter einer Excel-Arbeitsmappe automatisch als separate PDF-Dateien exportieren.

Das Makro:

  • fragt nach dem gewünschten Speicherordner,
  • durchläuft automatisch alle sichtbaren Arbeitsblätter,
  • erstellt für jedes Arbeitsblatt eine eigene PDF-Datei und
  • verwendet den Namen des Tabellenblatts automatisch als PDF-Dateinamen.

Schritt 1: VBA-Editor öffnen

Öffnen Sie Ihre Excel-Datei und drücken Sie Alt + F11, um den VBA-Editor zu öffnen.

Schritt 2: Neues VBA-Modul einfügen

Klicken Sie im VBA-Editor auf Einfügen > Modul.

Neues Modul im Excel VBA-Editor einfügen

Schritt 3: VBA-Code zum PDF-Export einfügen

Kopieren Sie folgenden VBA-Code in das neue Modul:

Sub ArbeitsblaetterEinzelnAlsPDFSpeichern()

    Dim ws As Worksheet
    Dim savePath As String
    Dim pdfName As String

    ' Speicherordner auswählen
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Ordner für PDF-Dateien auswählen"

        If .Show <> -1 Then
            Exit Sub
        End If

        savePath = .SelectedItems(1) & Application.PathSeparator
    End With

    Application.ScreenUpdating = False

    On Error GoTo Fehler

    ' Alle Arbeitsblätter durchlaufen
    For Each ws In ThisWorkbook.Worksheets

        ' Nur sichtbare Arbeitsblätter exportieren
        If ws.Visible = xlSheetVisible Then

            pdfName = SichererDateiname(ws.Name) & ".pdf"

            ws.ExportAsFixedFormat _
                Type:=xlTypePDF, _
                Filename:=savePath & pdfName, _
                Quality:=xlQualityStandard, _
                IncludeDocProperties:=True, _
                IgnorePrintAreas:=False, _
                OpenAfterPublish:=False

        End If

    Next ws

    Application.ScreenUpdating = True

    MsgBox "Alle Arbeitsblätter wurden als PDF gespeichert.", vbInformation

    Exit Sub

Fehler:

    Application.ScreenUpdating = True

    MsgBox "Beim PDF-Export ist ein Fehler aufgetreten: " & _
           Err.Description, vbExclamation

End Sub


Function SichererDateiname(ByVal Dateiname As String) As String

    Dim Zeichen As Variant

    For Each Zeichen In Array("\", "/", ":", "*", "?", Chr(34), "<", ">", "|")
        Dateiname = Replace(Dateiname, Zeichen, "_")
    Next Zeichen

    SichererDateiname = Dateiname

End Function

Schritt 4: Makro ausführen

Drücken Sie im VBA-Editor F5 oder führen Sie das Makro ArbeitsblaetterEinzelnAlsPDFSpeichern über Excel aus.

Es öffnet sich ein Dialogfenster, in dem Sie den gewünschten Speicherordner auswählen können.

Anschließend erstellt Excel automatisch für jedes sichtbare Arbeitsblatt eine eigene PDF-Datei.

Bei einer Arbeitsmappe mit den Tabellenblättern:

  • Sales
  • Costs
  • Dashboard

werden beispielsweise automatisch folgende Dateien erstellt:

  • Sales.pdf
  • Costs.pdf
  • Dashboard.pdf

Mehrere Excel Arbeitsblätter automatisch als separate PDF-Dateien exportieren

Wie funktioniert der VBA-Code?

Der entscheidende Teil des Makros ist die Excel-VBA-Methode ExportAsFixedFormat:

ws.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=savePath & pdfName, _
    Quality:=xlQualityStandard

ws steht jeweils für das aktuelle Arbeitsblatt. Durch die Schleife

For Each ws In ThisWorkbook.Worksheets

wird jedes Tabellenblatt der Arbeitsmappe automatisch nacheinander verarbeitet.

Dadurch müssen Sie nicht mehr jedes Arbeitsblatt manuell öffnen und als PDF speichern.

Nur sichtbare Arbeitsblätter als PDF speichern

Das oben gezeigte Makro exportiert bewusst nur sichtbare Tabellenblätter. Dafür sorgt folgende Bedingung:

If ws.Visible = xlSheetVisible Then

Ausgeblendete Hilfstabellen oder technische Arbeitsblätter werden dadurch nicht als PDF exportiert.

Wenn Sie auch ausgeblendete Arbeitsblätter exportieren möchten, können Sie diese Bedingung aus dem Makro entfernen.

Excel-PDF passt nicht auf eine Seite – was tun?

Beim PDF-Export verwendet Excel grundsätzlich die Druckeinstellungen des jeweiligen Arbeitsblatts. Wenn die Tabelle im PDF über mehrere Seiten verteilt wird, sollten Sie deshalb vor dem Export die Seiteneinstellungen überprüfen.

Unter Seitenlayout können Sie beispielsweise:

  • Hoch- oder Querformat einstellen,
  • Seitenränder verändern,
  • einen Druckbereich definieren und
  • die Tabelle auf eine Seite skalieren.

Mit VBA können Sie ein Arbeitsblatt beispielsweise auf eine Seitenbreite skalieren:

With ws.PageSetup
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = False
End With

Häufige Fragen zum PDF-Export aus Excel

Kann Excel jedes Arbeitsblatt automatisch als eigene PDF speichern?

Ja. Mit VBA können alle Arbeitsblätter einer Arbeitsmappe automatisch durchlaufen und jeweils als separate PDF-Datei gespeichert werden. Der Name des Arbeitsblatts kann gleichzeitig als Dateiname verwendet werden.

Kann ich mehrere Excel-Tabellenblätter ohne VBA als PDF speichern?

Einzelne oder ausgewählte Arbeitsblätter können auch ohne VBA als PDF exportiert werden. Wenn jedoch jedes Blatt als separate PDF-Datei gespeichert werden soll, muss der Vorgang ohne Automatisierung für jedes Blatt einzeln durchgeführt werden.

Warum sieht meine PDF anders aus als das Excel-Arbeitsblatt?

Beim PDF-Export berücksichtigt Excel die Druck- und Seiteneinstellungen des Arbeitsblatts. Prüfen Sie insbesondere Druckbereich, Seitenformat, Ausrichtung, Seitenränder und Skalierung.

Kann der PDF-Dateiname automatisch aus einer Excel-Zelle übernommen werden?

Ja. Anstelle von ws.Name kann beispielsweise der Inhalt einer bestimmten Zelle verwendet werden. So lassen sich automatisch Rechnungsnummern, Kundennamen, Projektnummern oder Datumsangaben in den PDF-Dateinamen übernehmen.

PDF-Export in Excel individuell automatisieren

In der Praxis reicht der einfache Export aller Tabellenblätter häufig nicht aus. Beispielsweise sollen PDF-Dateien automatisch nach Kunde, Projekt, Rechnungsnummer oder Datum benannt, in unterschiedlichen Ordnern gespeichert oder direkt per E-Mail versendet werden.

Solche Prozesse können vollständig mit Excel und VBA automatisiert werden.

Benötigen Sie Unterstützung bei einem individuellen PDF-Export oder bei der Automatisierung einer bestehenden Excel-Lösung? Kontaktieren Sie uns gerne unter +41 52 511 05 25 oder über unser
Kontaktformular.

Benötigen Sie einen Excel- oder VBA-Programmierer?

Wir von exact construct
entwickeln und automatisieren seit vielen Jahren Excel-Lösungen für Unternehmen.

Dazu gehören unter anderem:

  • VBA- und Makro-Programmierung
  • automatisierte PDF- und Berichtserstellung
  • Excel-Dashboards und Reporting
  • Import und Verarbeitung von Daten
  • Power Query und Office-Automatisierung
  • Optimierung bestehender Excel-Anwendungen

Weitere Informationen finden Sie auch in unserem Artikel zum Thema

Excel- und VBA-Programmierer finden
.

„`

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen