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

Forumthread: VBA Speichern als PDF - Seitenformat

VBA Speichern als PDF - Seitenformat
19.02.2021 16:29:36
McAledih
Hallo liebes Forum,
ich möchte per VBA in Excel gerne einen festgelegten Druckbereich als PDF speichern.
Dabei habe ich das Problem, dass die Seitenränder oder das Seitenformat bei unterschiedlichen Computern auf denen ich die Datei öffne unterschiedlich ausfällt und damit manchmal Spalten auf die nächste Seite rutschen.
Auf den Computern sind unterschiedliche Drucker voreingestellt und ich sehe, dass eine Änderung des Druckers sich auch auf das Speichern als PDF per Makro auswirkt.
Nun frage ich mich, warum der voreingestellte Drucker relevant ist, denn das Speichern als PDF sollte doch über einen "PDF-Drucker" als Drucker gehen und unabhängig vom gerade gewählten Drucker sein.
Ich verwende den Befehl:
Sheets("Druck").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Str_Dateiname, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Wenn ich mir mit Worksheets("Druck").PageSetup.RightMargin die Seitenränder anzeigen lasse, dann sind sie auf allen Computern identisch und unabhängig vom ausgewählten Drucker.
Auch das Papierformat mit Worksheets("Druck").PageSetup.PaperSize gibt immer den Wert 9 raus.
Seitenränder und Papierformat sind also gleich und trotzdem wird je nach ausgewähltem Drucker mal eine Spalte abgeschnitten und mal nicht.
Kann mir jemand helfen? Das Makro muss zuverlässig immer den festgelegten Druckbereich in gleicher Seitengröße als PDF speichern.
Reicht es, wenn ich den Drucker vorher auf "Microsoft Print to PDF" festlege?
Also z.B. mit : Application.ActivePrinter = "Microsoft Print to PDF auf Ne03:"
Aber die Ne-Nummer ist nicht bei jedem Computer gleich und eventuell ist der Drucker ja gar nicht installiert...
Danke schon mal und Gruß aus Viersen,
Mick
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Speichern als PDF - Seitenformat
19.02.2021 17:41:16
onur
"auf denen ich die Datei öffne" - Welche Datei ?
Die PDF- oder die Exceldatei ?
AW: VBA Speichern als PDF - Seitenformat
19.02.2021 17:44:37
onur
"Reicht es, wenn ich den Drucker vorher auf "Microsoft Print to PDF" festlege?" - Du verwechselst da was.
Man kann das ENTWEDER durch ExportAsFixedFormat ODER durch Drucken auf "Microsoft Print to PDF" erreichen.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA: Excel als PDF speichern ohne abgeschnittene Seiten


Schritt-für-Schritt-Anleitung

Um einen festgelegten Bereich in Excel per VBA als PDF zu speichern, kannst du folgenden Code verwenden:

Sub SpeichernAlsPDF()
    Dim Str_Dateiname As String
    Str_Dateiname = "C:\DeinPfad\DeineDatei.pdf" ' Pfad anpassen

    ' Aktiviere den PDF-Drucker
    Application.ActivePrinter = "Microsoft Print to PDF"

    ' Exportiere den festgelegten Bereich als PDF
    Sheets("Druck").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Str_Dateiname, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub

Stelle sicher, dass du den richtigen Pfad und Dateinamen angibst. Bevor du den Code ausführst, solltest du den Drucker auf "Microsoft Print to PDF" setzen, um Probleme mit dem Seitenformat zu vermeiden.


Häufige Fehler und Lösungen

  1. Problem: Excel als PDF speichern abgeschnitten

    • Lösung: Überprüfe die Seitenränder und das Papierformat in den Seiteneinstellungen. Stelle sicher, dass diese auf allen Computern identisch sind.
  2. Problem: Unterschiedliche PDF-Seitengröße auf verschiedenen Computern

    • Lösung: Stelle sicher, dass der Drucker "Microsoft Print to PDF" als Standarddrucker gesetzt wird. Verwende den Befehl Application.ActivePrinter vor dem Export.

Alternative Methoden

Es gibt verschiedene Methoden, um Excel-Daten in PDF umzuwandeln. Eine Möglichkeit ist, die Datei direkt über die Druckfunktion zu drucken:

Sub DruckenAlsPDF()
    ActiveSheet.PrintOut ActivePrinter:="Microsoft Print to PDF", Copies:=1, Collate:=True
End Sub

Diese Methode kann ebenfalls funktionieren, wenn du die PDF-Datei ohne abgeschnittene Inhalte speichern möchtest.


Praktische Beispiele

  • Beispiel 1: Speichern eines bestimmten Bereichs

    Sub BereichAlsPDF()
      Sheets("Druck").Range("A1:D20").ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\DeinPfad\Bereich.pdf"
    End Sub
  • Beispiel 2: Mehrere Blätter in eine PDF-Datei speichern

    Sub MehrereBlaetterPDF()
      Sheets(Array("Druck", "Zusatzblatt")).Select
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\DeinPfad\MehrereBlätter.pdf"
      Sheets("Druck").Select
    End Sub

Tipps für Profis

  • Überprüfe vor dem Speichern die Seiteneinstellungen in Excel, um sicherzustellen, dass die Inhalte nicht abgeschnitten werden.
  • Nutze PageSetup-Objekte, um die Seitenränder und das Papierformat programmgesteuert einzustellen, bevor du das PDF erstellst.
  • Wenn du mit Vorlagen arbeitest, stelle sicher, dass diese auf allen Geräten konsistent sind, um Probleme beim Speichern als PDF zu vermeiden.

FAQ: Häufige Fragen

1. Warum ist der voreingestellte Drucker relevant für das Speichern als PDF?
Der voreingestellte Drucker beeinflusst das Seitenformat und die Druckeinstellungen, was dazu führen kann, dass Inhalte abgeschnitten werden.

2. Wie kann ich das PDF-Seitenformat ändern?
Das PDF-Seitenformat wird durch die Seiteneinstellungen in Excel bestimmt. Stelle sicher, dass die Seitenränder und die Papiergröße korrekt eingestellt sind, bevor du das PDF exportierst.

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