13.04.2026, 13:55
Moin Leon,
bei allem Fairständnis, dass Dein Thema von Steve geschlossen wurde, sollst Du nicht dabei der Leidtragende sein.
Deshalb hier eine einfache VBA-Lösung, deren Einbau in Dein Workbook Schritt für Schritt beschrieben ist. Kein Panik, es ist auch für VBA-Neulinge (also solche die es zu schätzen lernen werden
) leicht und in wenigen Minuten machbar.
5. In Zeile 6 findest Du ein Array (eine Liste) mit Beispielnamen Deiner Arbeitsblätter, die Du bitte anpasst. Achte dabei auf die Syntax: Jeder Blattname muss genau so in
Anführungszeichen stehen, wie Du ihn unten in der Mappe siehst und vom nächsten durch ein Komma getrennt sein. Wenn Du dynamische Namen hast, zeige mir hier eine Liste
aller Blattnamen und ich passe Dir den Code entsprechend an.
6. Direkt darunter definierst Du das Verzeichnis, in das die PDFs abgelegt werden sollen. Willst Du die Dateien z.B. im Verzeichnis "D:\Meine PDFs" ablegen, ersetzt Du
ThisWorkbook.Path durch den Verzeichnisnamen in Anführungszeichen.
7. In Zeile 15 (s. oben im Editor-Menü) wird vor dem Druck der Blatt = Dateiname um das aktuelle Datum ergänzt. Wenn Du das nicht möchtest, setzt Du direkt nach sht.name ein
Hochkomma (über der Raute).
8. Nach Deinen Anpassungen speicherst Du die Date erneut
Den letzten Schritt machst Du in DieseArbeitsmappe: Durch Doppelklick öffnest Du deren Codefenster und kopierst diesen Code dort hinein:
setzt Deinen Cursor hinter Workbook_Open() und drückst F5. Du siehst erst mal kein Ergebnis, aber: Damit wird F12 diesem Makro zugeordnet und Du kannst Deine PDFs mit nur einem Tastendruck exportieren. Willst Du eine andere F-Taste, achte auf Anführungsstriche und Klammern!
Wie kann's noch besser werden? Dass Du jedes Mal auch noch sehen willst, wie die PDFs denn aussehen, wird Dir sicher igendwann lästig werden. Daher habe ich es hier weggelassen - es ist aber natürlich möglich.
Als interessante Ergänzung könnte ich mir aber vorstellen, dass die Berichte sofort oder später per Outlook verschickt werden und dabei aus demAusgabeordner in den Unterordner Versandt verschoben werden.
Lass wissen, was das veraltete VBA Dir noch Gutes tun kann
Schöne Grüße
bei allem Fairständnis, dass Dein Thema von Steve geschlossen wurde, sollst Du nicht dabei der Leidtragende sein.
Deshalb hier eine einfache VBA-Lösung, deren Einbau in Dein Workbook Schritt für Schritt beschrieben ist. Kein Panik, es ist auch für VBA-Neulinge (also solche die es zu schätzen lernen werden
) leicht und in wenigen Minuten machbar.- Du öffnest die Arbeitsmappe, aus der die PDFs generiert werden sollen und erstellst mit Speichern unter eine Kopie im Format .xlsb. Die vorherige Version wird nicht mehr gebraucht.
- Mit Alt + F11 kommst Du in den VB-Editor. Links oben siehst Du ein Fenster VBA-Projekt mit all Deinen Arbeitsblättern. Falls nicht hilft Strg + R weiter.
- Mit einem Rechtsklick in dieses Fenster wird Dir Einfügen angeboten, wo Du Modul wählst.
- Durch Doppelklick auf Modul1 öffnet sich rechts das große Fenster für den Code des Moduls. Dort kopierst Du den folgenden Code komplett hinein (ohne die Überschrift Code:) und speicherst Deine Datei
Code:
Option Explicit
Sub Export_To_PDF()
Dim sht As Worksheet, sPath$, sFile$, aSheets(), item
'###### Hier bitte anpassen/ergänzen: Die Namen der Blätter, die Du exportieren möchtest
aSheets = Array("Bericht_A", "Bericht_B")
'###### Hier bitte anpassen: Wo sollen die PDFs abgelegt werden.
'###### So werden sie direkt im Verzeichnis Deines Workbooks abgelegt.
sPath = ThisWorkbook.Path
For Each sht In ThisWorkbook.Sheets
For Each item In aSheets
If sht.Name = item Then
'##### Hier bitte anpassen: Der Dateiname wird aus Blattname & Datum zusammengesetzt
sFile = sPath & "\" & sht.Name & "_" & Date
sht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFile, Quality:=xlQualityStandard
End If
Next
Next
End Sub5. In Zeile 6 findest Du ein Array (eine Liste) mit Beispielnamen Deiner Arbeitsblätter, die Du bitte anpasst. Achte dabei auf die Syntax: Jeder Blattname muss genau so in
Anführungszeichen stehen, wie Du ihn unten in der Mappe siehst und vom nächsten durch ein Komma getrennt sein. Wenn Du dynamische Namen hast, zeige mir hier eine Liste
aller Blattnamen und ich passe Dir den Code entsprechend an.
6. Direkt darunter definierst Du das Verzeichnis, in das die PDFs abgelegt werden sollen. Willst Du die Dateien z.B. im Verzeichnis "D:\Meine PDFs" ablegen, ersetzt Du
ThisWorkbook.Path durch den Verzeichnisnamen in Anführungszeichen.
7. In Zeile 15 (s. oben im Editor-Menü) wird vor dem Druck der Blatt = Dateiname um das aktuelle Datum ergänzt. Wenn Du das nicht möchtest, setzt Du direkt nach sht.name ein
Hochkomma (über der Raute).
8. Nach Deinen Anpassungen speicherst Du die Date erneut
Den letzten Schritt machst Du in DieseArbeitsmappe: Durch Doppelklick öffnest Du deren Codefenster und kopierst diesen Code dort hinein:
Code:
Option Explicit
Private Sub Workbook_Open()
Application.OnKey "({F12})", "Export_To_PDF"
End Subsetzt Deinen Cursor hinter Workbook_Open() und drückst F5. Du siehst erst mal kein Ergebnis, aber: Damit wird F12 diesem Makro zugeordnet und Du kannst Deine PDFs mit nur einem Tastendruck exportieren. Willst Du eine andere F-Taste, achte auf Anführungsstriche und Klammern!
Wie kann's noch besser werden? Dass Du jedes Mal auch noch sehen willst, wie die PDFs denn aussehen, wird Dir sicher igendwann lästig werden. Daher habe ich es hier weggelassen - es ist aber natürlich möglich.
Als interessante Ergänzung könnte ich mir aber vorstellen, dass die Berichte sofort oder später per Outlook verschickt werden und dabei aus demAusgabeordner in den Unterordner Versandt verschoben werden.
Lass wissen, was das veraltete VBA Dir noch Gutes tun kann

Schöne Grüße
----------------------------------------------------------------------------------------------------
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2024 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019 pro & Android12 & XL365
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2024 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019 pro & Android12 & XL365


