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

Forumthread: mehrere Tab.blätter in pdf drucken VBA

mehrere Tab.blätter in pdf drucken VBA
08.04.2022 19:06:02
Stephan
Hallo an die VBA Profis,
ich brauche bitte Hilfe bei einer VBA-Umsetzung und bin in x Beiträgen nicht fündig geworden, meine gesuchte Variante habe ich nicht gefunden...
Ich brauche bitte 2 einzelne Makros:
Makro 1:
6 Tabellenblätter sollen als 1 PDF gedruckt werden: "Name1", "Name 2" usw.
mit dem "Adobe PDF" Drucker
Pfad: D:\Benutzer\usw.
Dateiname: steht in Tabellenblatt "Daten" H4 (Text und Datum kombiniert als Formel : ="xyz "&TEXT(HEUTE();"TT.MM.JJ")
pdf muss nach der Erstellung nicht geöffnet werden
Makro 2:
2 Tabellenblätter sollen als 2 PDF gedruckt werden:
selbes Vorgaben zu Drucker / Pfad usw. wie oben
Tabellenblatt "Name8" mit Dateiname in Tabellenblatt "Daten" H9
Tabellenblatt "Name9" mit Dateiname in Tabellenblatt "Daten" H14
Danke vorab für eure Hilfe.
Gruß Stephan
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Tab.blätter in pdf drucken VBA
08.04.2022 19:22:27
Nepumuk
Hallo Stephan,
benutze den eingebauten PDF-Drucker von Office.
So geht das für 6 Tabellen:

Public Sub Makro1()
Const FOLDER_PATH As String = "D:\Benutzer\"
Dim lngIndex As Long
Dim blnReplace As Boolean
For lngIndex = 1 To 6
Call Worksheets("Name" & CStr(lngIndex)).Select(Replace:=blnReplace)
blnReplace = True
Next
Call Worksheets("Name1").ExportAsFixedFormat(Type:=xlTypePDF, Filename:=FOLDER_PATH & _
Worksheets("Daten").Range("H4").Text, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False)
Call Worksheets("Name1").Select
End Sub
Das kannst du nun selbst auf zwei Tabellen ändern.
Gruß
Nepumuk
Anzeige
AW: mehrere Tab.blätter in pdf drucken VBA
08.04.2022 19:41:18
Stephan
Hallo Nepumuk, danke für die Anleitung.
Bei
Call Worksheets("Name" & CStr(lngIndex)).Select(Replace:=blnReplace)
gehe ich davon aus, dass es auch "Name1" heißen muss? Das war nur ein Beispiel, aber ich habe hier meinen ersten Tabellenblattnamen eingesetzt, genauso wie überall wo "Name1" steht.
Ich erhalte den Laufzeitfehler 9 - Index außerhalb des gültigen Bereichs.
?
Und wie schreibe ich dann den Code, dass 2 Blätter in 2 Dateien gespeichert werden? Das ist mir als Laie nicht klar. Einfach nochmal mit geänderten Daten drunter?
Anzeige
AW: mehrere Tab.blätter in pdf drucken VBA
08.04.2022 20:12:24
Nepumuk
Hallo Stephan,

gehe ich davon aus, dass es auch "Name1" heißen muss?
NEIN.
Gruß
Nepumuk
AW: mehrere Tab.blätter in pdf drucken VBA
08.04.2022 20:16:58
Stephan
ok, aber der Laufzeitfehler bleibt trotzdem...
AW: mehrere Tab.blätter in pdf drucken VBA
08.04.2022 20:24:29
Nepumuk
Hallo Stephan,
ich habe das Makro nach deiner Beschreibung der Datei erstellt. Wenn es nicht passt, dann solltest du die Mappe hochladen damit ich herausbekommen kann, woran es liegt.
Gruß
Nepumuk
Anzeige
AW: mehrere Tab.blätter in pdf drucken VBA
08.04.2022 20:29:44
Stephan
ok, dazu muss ich erst meine ganzen Daten rausnehmen
hier die Datei mit Beispieldaten
08.04.2022 21:43:12
Stephan
hier die Datei mit umbenannten Beispieldaten:
https://www.herber.de/bbs/user/152361.xlsm
Druck in 1 pdf Datei: Tabellnblätter "Alle" bis inkl. "Gruppe 5"
Druck in 2 pdf Dateien: Tabellenblätter "Übersicht 1" und "Übersicht 2"
Anzeige
Nepumuk, ich hab schon, glaub ich
09.04.2022 06:58:29
Oberschlumpf
Hi Stephan
vielleicht weißt du es ja bei deiner nächsten, neuen Frage noch: gleich sofort MIT Bsp-Datei is eigtl immer besser!
(hast ja gesehen, was rauskommt, wenn Bsp-Datei nich vorhanden is)
Also, ich hab mein Glück auch mal versucht und den Code von Nepumuk in kleinen Teilen übernommen.
hier meine Datei:
https://www.herber.de/bbs/user/152364.xlsm
Sie enthält sowohl Makro1 für die gewünschten 6 Sheets in nur 1 PDF-Datei, als auch Makro2 für das Speichern von 2 Sheets in jeweils nur 1 PDF-Datei.
PDF-Name für 6 Sheets = "6 Sheets in PDF.pdf", weil du nich angegeben hast, wie denn diese PDF-Datei heißen soll - du musst den PDF-Namen also im Code noch anpassen
PDF-Namen für die 2 einzelnen PDF-Dateien = "Ü1 in PDF.pdf" und "Ü2 in PDF.pdf" - auch hier musst du die Namen im Code anpassen, weil...deine Angaben wieder fehlten.
Ach ja, du musst im Code auch noch den Speicherpfad anpassen, weil ich ja deinen Pfad auf meinem Computer nicht habe - aber ich hab das im Code kommentiert, wo du den Pfad anpassen musst.
Bei mir wird nach deinen Wünschen alles erledigt.
Konnte ich auch dir helfen?
Ciao
Thorsten
Anzeige
klappt, aber noch 1 Frage :-)
09.04.2022 09:43:23
Stephan
Lieber Thorsten,
vielen Dank für deinen frühen Einsatz.
Zu meiner Verteidigung :-) ich bin davon ausgegangen, dass die Tabellen samt Inhalt nicht sonderlich relevant sind, wenn es schlicht ums Drucken / pdf-Speichern geht. Bei 9 Blättern mit Inhalt bin ich ja auch etwas beschäftigt, alles rauszunehmen... Egal, wieder was gelernt.
Nur eine Sache noch:
Ich hatte die Dateinamen in meinem 1. Kommentar angegeben (und Nepumuk hatte ja auch einen von drei in seinen Code geschrieben) - im Tabellenblatt "Daten" steht er für die 6 Sheets in H4, für Sheet Ü1 in H9 und für Sheet Ü2 in H14. Er ändert sich immer, weil es eine Kombination aus Text und Datum ist.
Als VBA Laie krieg ich es leider nicht hin, Nepumuks Code mit deinem hier zu vereinen. Wenn du mir das bitte noch zeigen würdest... Danke, Gruß Stephan
Anzeige
AW: klappt, aber noch 1 Frage :-)
09.04.2022 10:30:07
Oberschlumpf
Hi Stephan,
uuppppss - ok - mein Fehler!
Ja, du hast recht, und ich hatte leider vergessen, dass die Infos zu den PDF-Dateinamen schon von dir im ersten Beitrag angegeben waren...sorry dafür!
Hier nun die korrigierte Datei
https://www.herber.de/bbs/user/152366.xlsm
JETZT müsste auch der Name für jede im Code erstellte PDF-Datei stimmen, oder?
Ciao
Thorsten
Anzeige
AW: klappt, aber noch 1 Frage :-)
09.04.2022 19:32:24
Oberschlumpf
gibbs denn noch ne antwort? :-//
Antwort ging verloren...
09.04.2022 20:04:39
Stephan
Vielen Dank Thorsten.
Ich hatte das heute Vormittag schon geschrieben und abgesendet, aber ich sehe, dass es nicht ankam. Hatt ich bisher auch noch nicht...
Ja, jetzt passt alles. Danke
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mehrere Tabellenblätter als PDF drucken mit VBA


Schritt-für-Schritt-Anleitung

Um mehrere Tabellenblätter in Excel als PDF zu drucken, kannst du VBA nutzen. Hier ist eine Schritt-für-Schritt-Anleitung für die Erstellung von zwei Makros:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (dein Dokument)" und wähle Einfügen > Modul.

  3. Makro 1 für mehrere Tabellenblätter: Füge den folgenden Code ein, um 6 Tabellenblätter als eine PDF-Datei zu drucken:

    Public Sub Makro1()
       Const FOLDER_PATH As String = "D:\Benutzer\"
       Dim lngIndex As Long
       Dim blnReplace As Boolean
    
       For lngIndex = 1 To 6
           Call Worksheets("Name" & CStr(lngIndex)).Select(Replace:=blnReplace)
           blnReplace = True
       Next
    
       Call Worksheets("Name1").ExportAsFixedFormat(Type:=xlTypePDF, Filename:=FOLDER_PATH & _
           Worksheets("Daten").Range("H4").Text, Quality:=xlQualityStandard, _
           IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False)
       Call Worksheets("Name1").Select
    End Sub
  4. Makro 2 für mehrere PDF-Dateien: Um 2 Tabellenblätter in 2 separate PDF-Dateien zu drucken, benutze diesen Code:

    Public Sub Makro2()
       Const FOLDER_PATH As String = "D:\Benutzer\"
    
       Worksheets("Name8").ExportAsFixedFormat Type:=xlTypePDF, Filename:=FOLDER_PATH & _
           Worksheets("Daten").Range("H9").Text, Quality:=xlQualityStandard, _
           IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    
       Worksheets("Name9").ExportAsFixedFormat Type:=xlTypePDF, Filename:=FOLDER_PATH & _
           Worksheets("Daten").Range("H14").Text, Quality:=xlQualityStandard, _
           IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe die Makros aus: Wechsle zurück zu Excel, drücke ALT + F8, wähle das gewünschte Makro und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Laufzeitfehler 9 - Index außerhalb des gültigen Bereichs: Achte darauf, dass die Blattnamen korrekt sind und existieren. Überprüfe, ob du die Namen in den VBA-Codes entsprechend angepasst hast.

  • Mehrere PDFs drucken funktioniert nicht: Stelle sicher, dass die angegebenen Pfade und Dateinamen in den Makros korrekt sind. Überprüfe auch, ob der PDF-Drucker korrekt eingerichtet ist.


Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch die integrierte Funktion in Excel nutzen:

  1. Wähle die Tabellenblätter aus, die du drucken möchtest.
  2. Gehe zu Datei > Drucken.
  3. Wähle „Microsoft Print to PDF“ als Drucker aus.
  4. Klicke auf „Drucken“ und gib den Speicherort für die PDF-Datei an.

Praktische Beispiele

Hier sind zwei Beispiele, wie du die Makros verwenden kannst:

  • Beispiel 1: Drucke die Tabellenblätter "Tabelle1", "Tabelle2", "Tabelle3", "Tabelle4", "Tabelle5", "Tabelle6" als eine PDF-Datei.
  • Beispiel 2: Drucke die Tabellenblätter "Bericht A" und "Bericht B" in zwei separate PDF-Dateien.

Stelle sicher, dass die Pfade und Dateinamen in den Makros entsprechend deiner Anforderungen angepasst sind.


Tipps für Profis

  • PDF drucken auf mehrere Seiten verteilen: Du kannst die Druckoptionen anpassen, um sicherzustellen, dass beim Drucken auf mehrere Seiten verteilt wird. Überprüfe die Druckeinstellungen in Excel.
  • VBA-Fehlerbehandlung einfügen: Füge Fehlerbehandlung in deine Makros ein, um sicherzustellen, dass der Code auch bei unerwarteten Eingaben funktioniert.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die PDF-Datei korrekt gespeichert wird?
Achte darauf, dass der angegebene Pfad existiert und du die richtigen Berechtigungen hast.

2. Kann ich auch mehrere PDF-Dateien drucken?
Ja, mit dem richtigen VBA-Code kannst du mehrere PDF-Dateien drucken, indem du die ExportAsFixedFormat-Methode für jedes Blatt verwendest.

3. Was mache ich, wenn ich Probleme mit dem PDF-Drucker habe?
Überprüfe die Druckereinstellungen in der Systemsteuerung und stelle sicher, dass der PDF-Drucker ordnungsgemäß installiert ist.

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