HERBERS Excel-Forum - das Archiv

Thema: VBA: Probleme mit pdftk zum Zusammenfügen

VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
Hallo zusammen,

wäre der blöde Ehrgeiz nicht. Bisher macht das Makro alles richtig toll. Ist mit Chatgpt erstellt. Aber bzgl. des pdftks bekommen Chatgpt und ich es einfach nicht hin.

Pfade überprüft, alles gut...aber es immer die Fehlermeldung bzgl. pdftk, dass ein ungültiges Argument angegeben ist. Ich hatte den Code vorher schon mal in einer anderen Form hier gepostet, also nicht wundern.

Es soll halt eine Mail mit dem Blatt als pdf erstellt werden, dabei soll die pdf mit anderen pdfs kombiniert werden:

Sub SUK_Rechnung_Speichern_Und_Versenden()

On Error GoTo ErrorHandler ' Fehlerbehandlung aktivieren

Dim ws As Worksheet
Dim savePath As String
Dim fileName As String
Dim outlookApp As Object
Dim outlookMail As Object
Dim emailRecipient As String
Dim emailSubject As String
Dim emailBody As String
Dim subjectCell As Range ' Variable für Betreffzeile
Dim attachmentPath As String ' Pfad zu den Anhängen
Dim command As String ' Befehlszeile für PDFtk
Dim pdftkPath As String ' Pfad zum PDFtk-Server

' Arbeitsblatt mit den Daten
Set ws = ThisWorkbook.Sheets("SUK Rechnung")

' Pfad zum Speichern des PDFs
savePath = "W:\"

' Dateiname aus Zelle K11 auslesen
fileName = ws.Range("K11").Value

' PDF speichern
ws.ExportAsFixedFormat Type:=xlTypePDF, fileName:=savePath & "\" & fileName & ".pdf", Quality:=xlQualityStandard

' Betreffzeile auslesen
Set subjectCell = ws.Range("K12") ' Annahme: Betreff ist in Zelle K12
emailSubject = subjectCell.Value ' Wert der Betreffzeile zuweisen

' Outlook-Instanz erstellen
Set outlookApp = CreateObject("Outlook.Application")
Set outlookMail = outlookApp.CreateItem(0)

' Empfänger der E-Mail
emailRecipient = "michael.dedes@sanha.com"

' Text der E-Mail
emailBody = "Hallo Michael," & vbCrLf & _
vbCrLf & _
"anbei die Rechnungen." & vbCrLf & _
vbCrLf & _
"Viele Grüße," & vbCrLf & _
"Heike" & vbCrLf & _
"Accountant" & vbCrLf & _
"T +49 2054 925132" & vbCrLf & _
vbCrLf & _
"mailto:heike.ausderfuenten@sanha.com"

' Pfad zu den Anhängen
attachmentPath = "W:\Anhang WB\"

' Pfad zum PDFtk-Server
pdftkPath = """C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe"""

' Befehlszeile für PDFtk
command = "cmd /c " & pdftkPath & " """ & savePath & "\" & fileName & ".pdf"" "

' Alle PDF-Dateien im Anhangordner durchlaufen und zur Befehlszeile hinzufügen
Dim attachmentFileName As String
attachmentFileName = Dir(attachmentPath & "*.pdf") ' Alle PDF-Dateien im Ordner abrufen
Do While attachmentFileName <> "" ' Solange es Dateien gibt
command = command & """" & attachmentPath & attachmentFileName & """ "
attachmentFileName = Dir ' Nächste Datei abrufen
Loop

MsgBox "Befehlszeile: " & command

' Befehl zum Zusammenführen der PDFs hinzufügen
command = command & "cat output """ & savePath & "\" & fileName & "_with_attachments.pdf"""

' PDFs zusammenführen
Shell command, vbHide

' E-Mail zusammenstellen
With outlookMail
.To = emailRecipient
.Subject = emailSubject
.Body = emailBody

' Anhang hinzufügen (die kombinierte PDF-Datei)
.Attachments.Add savePath & "\" & fileName & "_with_attachments.pdf"

.Display ' E-Mail anzeigen
End With

Exit Sub ' Bei erfolgreicher Ausführung den Fehlerhandler überspringen
AW: VBA: Probleme mit pdftk zum Zusammenfügen
schauan
Hallöchen,

Du erhältst einen Kommandostring. Hast Du den schon mal kopiert und in einem cmd-Fenster verwendet? (also natürlich ohne "cmd /c " am Anfang)
Zumeist kann man daraus eine Korrektur ableiten.
AW: VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
Ich muss sagen, was sowas angeht bin ich echt Laie. Habe mal so eingegeben:

C:\Users\bergmann>/c
Der Befehl "/c" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Danach im Makro gegen c: getauscht, klappt aber auch nicht.
AW: VBA: Probleme mit pdftk zum Zusammenfügen
schauan
/C solltest Du auch weglassen. Zu pdftk muss es doch eine Beschreibung geben, wo steht, wie der Befehl auszusehen hat. Hat also erst mal nix mit VBA zu tun sondern mit der Nutzung von pdftk im Allgemeinen.
Nach irgendeinem Anhaltspunkt musst Du deinen command - string programmiert haben - hat das chatgpt so vorgeschlagen?

Auch google bietet einiges, wenn man nach
psdtk command line lot of files
oder ähnlichem sucht. Geht vielleicht auch deutsch, habe ich jetzt nicht probiert ...

auf den pdftk seiten gibt es irgendwo eine vollständige Beschreibung zum Download
https://de.scribd.com/document/426142419/Pdftk-Examples

Ich bin jetzt allerdings erst mal offline und lasse die Frage auf offen .... Wie gesagt, wäre schön, wenn Du zumindest im cmd das Zusammenführen mehrerer Dateien gebacken bekommst, was man dann als Grundlage für VBA nehmen kann.
AW: VBA: Probleme mit pdftk zum Zusammenfügen
UweD
Hallo


1)
Nach dem Laufwerksbuchstaben hast du 2 \

W:\\ usw.
eins mal wegnehmen.

2)
öffne mal die Comando Ebene
trage dort mal "C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe" ein
Inkl. einem Anführungszeichen vorne und hinten

Öffnet sich dann das Programm?

LG UweD
AW: VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
Hallo!

Dann bekomme ich dieses, das Programm öffnet sich aber nicht:

C:\Users\bergmann>"C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe"
SYNOPSIS
pdftk
[ input_pw ]
[ ]
[ output ]
[ encrypt_40bit | encrypt_128bit ]
[ allow ]
[ owner_pw ]
[ user_pw ]
[ flatten ] [ need_appearances ]
[ compress | uncompress ]
[ keep_first_id | keep_final_id ] [ drop_xfa ] [ drop_xmp ]
[ verbose ] [ dont_ask | do_ask ]
Where:
may be empty, or:
[ cat | shuffle | burst | rotate |
generate_fdf | fill_form |
background | multibackground |
stamp | multistamp |
dump_data | dump_data_utf8 |
dump_data_fields | dump_data_fields_utf8 |
dump_data_annots |
update_info | update_info_utf8 |
attach_files | unpack_files ]

For Complete Help: pdftk --help
VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
ich habe mal messageboxen für die Befehle eingefügt (Idee von der Chatgpt), da kommt das raus, was meiner Meinung nach schon mal gut aussieht?

Userbild
AW: VBA: Probleme mit pdftk zum Zusammenfügen
UweD
Wie bereits geschrieben..
Die doppelten \\ solltest du eliminieren.


und meiner Meinung nach müssen nur " am Anfang und Ende des Befehls.

zusätzlich dann noch um den Shellbefehl. Dann müssen die Internen verdoppelt werden:


"cmd /c ""C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe W:\Deine Datei.pdf W:\Anhang WB\Plus1.pdf WB\Plus2.pdf cat output W:\DeineDatei_with_attachments.pdf"""

So musst du den String zusammenbauen

LG UweD

VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
Sorry, aber ich habe echt wenig Ahnung von der ganzen Materie.

Das Makro wurde komplett von GPT erstellt.

also um den Shell Befehl auch noch ""?

und dieses:

"cmd /c ""C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe W:\Deine Datei.pdf W:\Anhang WB\Plus1.pdf WB\Plus2.pdf cat output W:\DeineDatei_with_attachments.pdf"""

statt diesem?:

"cmd /c " & pdftkPath & " " & savePath & "\" & fileName & ".pdf"

wobei ich die Namen der Anhänge nicht festlegen wollte. Einfach alle, die in dem Ordner sind.



AW: VBA: Probleme mit pdftk zum Zusammenfügen
UweD
Hallo


Nein,
Die String muss durch den Code so ähnlich generiert werden, wie ich das an einem Beispiel gezeigt habe.

Den Code, den ich dir in dem anderen Beitrag umgeschrieben habe, liefert bei mir den richtigen String, den ich aber nicht testen kann, weil ich das Programm nicht nutze.

Wichtig ist, dass die Doppelten \\ verschwinden

LG UweD
VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
Meiner Meinung nach ist er jetzt sauber.

Fortschrift ist, dass keine Fehlermeldung bzgl. PDFtk kommt.

Er fügt nun aber nicht die Dateien zusammen und erzeugt keine Mail.

ub SUK_Rechnung_Speichern_Und_Versenden_Herbers()

On Error GoTo ErrorHandler ' Fehlerbehandlung aktivieren

Dim ws As Worksheet
Dim savePath As String
Dim fileName As String
Dim outlookApp As Object
Dim outlookMail As Object
Dim emailRecipient As String
Dim emailSubject As String
Dim emailBody As String
Dim subjectCell As Range ' Variable für Betreffzeile
Dim attachmentPath As String ' Pfad zu den Anhängen
Dim command As String ' Befehlszeile für PDFtk
Dim pdftkPath As String ' Pfad zum PDFtk-Server

' Arbeitsblatt mit den Daten
Set ws = ThisWorkbook.Sheets("SUK Rechnung")

' Pfad zum Speichern des PDFs
savePath = "W:" '####ohne \ am Ende

' Dateiname aus Zelle K11 auslesen
fileName = ws.Range("K11").Value

' PDF speichern
ws.ExportAsFixedFormat Type:=xlTypePDF, fileName:=savePath & "\" & fileName & ".pdf", Quality:=xlQualityStandard

' Betreffzeile auslesen
Set subjectCell = ws.Range("K12") ' Annahme: Betreff ist in Zelle K12
emailSubject = subjectCell.Value ' Wert der Betreffzeile zuweisen

' Outlook-Instanz erstellen
Set outlookApp = CreateObject("Outlook.Application")
Set outlookMail = outlookApp.CreateItem(0)

' Empfänger der E-Mail
emailRecipient = "michael.dedes@sanha.com"

' Text der E-Mail
emailBody = "Hallo Michael," & vbCrLf & _
vbCrLf & _
"anbei die Rechnungen." & vbCrLf & _
vbCrLf & _
"Viele Grüße," & vbCrLf & _
"Heike" & vbCrLf & _
"Accountant" & vbCrLf & _
"T +49 2054 925132" & vbCrLf & _
vbCrLf & _
"mailto:heike.ausderfuenten@sanha.com"

' Pfad zu den Anhängen
attachmentPath = "W:Anhang WB\" '##### mit \ am Ende

' Pfad zum PDFtk-Server
pdftkPath = """C:Program Files (x86)\PDFtk Server\bin\pdftk.exe"

' Befehlszeile für PDFtk
command = "cmd /c " & pdftkPath & " " & savePath & "\" & fileName & ".pdf"

' Alle PDF-Dateien im Anhangordner durchlaufen und zur Befehlszeile hinzufügen
Dim attachmentFileName As String
attachmentFileName = Dir(attachmentPath & "*.pdf") ' Alle PDF-Dateien im Ordner abrufen
Do While attachmentFileName <> "" ' Solange es Dateien gibt
command = command & " " & attachmentPath & attachmentFileName
attachmentFileName = Dir ' Nächste Datei abrufen
Loop

MsgBox "Befehlszeile: " & command

' Befehl zum Zusammenführen der PDFs hinzufügen
command = command & " cat output " & savePath & "\" & fileName & "_with_attachments.pdf"""

' PDFs zusammenführen
Shell command, vbHide

' E-Mail zusammenstellen
With outlookMail
.To = emailRecipient
.Subject = emailSubject
.Body = emailBody

' Anhang hinzufügen (die kombinierte PDF-Datei)
.Attachments.Add savePath & "\" & fileName & "_with_attachments.pdf"

.Display ' E-Mail anzeigen
End With

Exit Sub ' Bei erfolgreicher Ausführung den Fehlerhandler überspringen
ErrorHandler:
End Sub



AW: VBA: Probleme mit pdftk zum Zusammenfügen
schauan
Jörg, es ist ja erst mal wichtig, einen String zu programmieren, der funktioniert.
Im nächsten Step kann man dann schauen, wie man das variabel gestaltet.

Join in1.pdf and in2.pdf into a new PDF, out1.pdf
pdftk in1.pdf in2.pdf cat output out1.pdf

or (using handles):
pdftk A=in1.pdf B=in2.pdf cat A B output out1.pdf

or (using wildcards):
pdftk *.pdf cat output combined.pdf

Das dritte Kommando wäre dann der Ansatz für Deine Anforderung. Da brauchst Du auch die Schleife nicht mehr.
( ' Alle PDF-Dateien im Anhangordner durchlaufen und zur Befehlszeile hinzufügen
Dim attachmentFileName As String
attachmentFileName = Dir(attachmentPath & "*.pdf") ' Alle PDF-Dateien im Ordner abrufen
Do While attachmentFileName <> "" ' Solange es Dateien gibt
command = command & " " & attachmentPath & attachmentFileName
attachmentFileName = Dir ' Nächste Datei abrufen
Loop)


VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
Ich denke, das wird nichts. Ich habe echt keine Ahnung von VBA. Ich dachte der Code, den mir Chatgpt angegeben hat, muss ggf. nur in einer Kleinigkeit korrigiert werden.

Von der Sache her brauche ich so etwas direkt in die Datei eingebaut.

Anpassungen an meine Gegebenheiten sind nicht so das Problem.

Will euch auch nicht nerven. Von daher kein Problem, wenn ich manuell zusammenfügen muss. Fand es nur etwas schade und unsinnig, wenn schon die Datei und die Mail erstellt wird, man dann aber trotzdem noch was mit der Datei machen muss. ;)
AW: VBA: Probleme mit pdftk zum Zusammenfügen
schauan
Hallo Jörg,

also, wer wird denn gleich .... aufgeben

1) öffne das DOS-Fenster
2) wechsle nach W: --> nur W: eingeben
3) diesen Befehl ausführen: pdftk *.pdf cat output combined.pdf

Jetzt schaust Du, ob alle Deine pdf zusammengefügt wurden.
pdftk sollte auch ohne Pfad zum Programm funktionieren, wenn es sich beim Installieren in die Umgebungsvariablen eingefädelt hat.
Wenn ja, dann geht es weiter und wir können das anpassen :-)

Wie Uwe habe ich dieses Programm auch nicht im Einsatz, daher ist das schrittweise Vorgehen und Prüfen der Ergebnisse der einzelnen Aktionen schon von Interesse.


VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
Hi!

Na guuut, wenn es für euch auch etwas positives hat, gerne. ;)

Wenn ich diesen Befehl eingebe, kommt eine Fehlermeldung:

W:\>pdftk *.pdf cat outoput combined.pdf
Der Befehl "pdftk" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
ich bin auch für andere Lösungen offen. Ich habe gswin32 und pdf24 auf dem Laptop.
AW: VBA: Probleme mit pdftk zum Zusammenfügen
schauan
Hallöchen,

nächster Step - am Ende etwas mehr als Uwe schon mal gesagt hatte

1) öffne das DOS-Fenster
2) wechsle nach W: --> nur W: eingeben
3) diesen Befehl ausführen: "C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe" *.pdf cat output combined.pdf

jetzt solltest Du dort die Datei combined.pdf bekommen.
VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
Guten Morgen,

ja, das hat geklappt. :)
AW: VBA: Probleme mit pdftk zum Zusammenfügen
schauan
Hallöchen,

also, weiter erst mal mit den kleinen Brötchen :-) Jetzt schaust Du, ob das auch mit VBA klappt.

Sub test()

Dim pdftkPath As String, command As String, iReturnCode As Integer
Dim objWsh As Object
Set objWsh = VBA.CreateObject("WScript.Shell")
' Pfad zum PDFtk-Server
pdftkPath = """C:Program Files (x86)\PDFtk Server\bin\pdftk.exe"""
' Befehlszeile für PDFtk
command = "cmd /c " & pdftkPath & " W:\*.pdf W:\catoutput_vba.pdf"
iReturnCode = objWsh.Run(command, vbHide, True)
MsgBox iReturnCode
End Sub


1)
Günstigstenfalls sollte am Ende 0 gemeldet werden und die pdf dort in w:\ liegen :-)
2)
Wenn Du den code 2x laufen lässt, hoffentlich auch. Ansonsten, wenn erst beim 2. Durchlauf ein Fehler kommt, könnte es Probleme mit dem Überschreiben geben. Dann muss man die Datei ggf. vorher löschen.
VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
...dabei bekomme ich eine Fehlermeldung:

Zugriff verweigert

hierzu:

iReturnCode = objWsh.Run(command, vbHide, True)
AW: VBA: Probleme mit pdftk zum Zusammenfügen
schauan
Hallöchen,

1)
nimm mal bitte statt
command = "cmd /c " & pdftkPath & " W:\*.pdf W:\catoutput_vba.pdf"
nur
command = "cmd /c dir w:\"

wenn das auch nicht geht, schaue mal im Menüband in die Extras | Verweise und aktiviere diesen:
Microsoft Scripting Runtime
Sollte eigentlich nicht erforderlich sein, aber manchmal ...

Übrigens, Hintergrund vom wsh ist für mich hier, dass ich auf die Beendigung der pdf-Erstellung warten wollte ...

VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
Hi!

Soeben gemacht, den Haken gesetzt und trotzdem die gleiche Fehlermeldung. :(
AW: VBA: Probleme mit pdftk zum Zusammenfügen
schauan
Hallöchen,

dann komme ich zurück zum Shell:

Sub test3()

Dim pdftkPath As String, command As String, iReturnCode As Integer
' Pfad zum PDFtk-Server
pdftkPath = """C:Program Files (x86)\PDFtk Server\bin\pdftk.exe"""
' Befehlszeile für PDFtk
command = "cmd /c " & pdftkPath & " W:\*.pdf W:\catoutput_vba.pdf"
Shell command, vbHide
MsgBox "Fertig"
End Sub


Die Meldung besagt allerdings nur, dass Dein VBA-Code fertig ist, nicht zwangsläufig, dass das pdf vollständig ist. Wäre ja dumm, wenn die Mail vorher abgeht,
Klappt das jetzt?
Wenn ja, schauen wir weiter.
VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
Hi! Leider nicht. Bekomme wieder die Fehlermeldung "ungültiger Prozeduraufruf oder ungültiges Argument" und die Shell Zeile wird gelb angezeigt. :(
AW: VBA: Probleme mit pdftk zum Zusammenfügen
schauan
Hallöchen,
jetzt hab ich mich dumm angestellt :-(
Bei den beiden Varianten ist mir was abhanden gekommen. Teste nochmal beides, aber nimm statt

command = "cmd /c " & pdftkPath & " W:\*.pdf W:\catoutput_vba.pdf"

dann

command = "cmd /c " & pdftkPath & " W:\*.pdf cat output W:\catoutput_vba.pdf"
VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
jetzt bekomme ich die Warnung, dass ein potentielles Sicherheitsrisiko erkannt wurde und die Makros entfernt wurden.

Ich denke, das liegt dann an den Sicherheitseinstellungen.

der Code schaut nun so aus:

Sub test()

Dim pdftkPath As String, command As String, iReturnCode As Integer
Dim objWsh As Object
Set objWsh = VBA.CreateObject("WScript.Shell")
' Pfad zum PDFtk-Server
pdftkPath = """C:Program Files (x86)\PDFtk Server\bin\pdftk.exe"""
' Befehlszeile für PDFtk
command = "cmd /c " & pdftkPath & " W:\*.pdf cat output W:\catoutput_vba.pdf"
iReturnCode = objWsh.Run(command, vbHide, True)
MsgBox iReturnCode
End Sub
AW: VBA: Probleme mit pdftk zum Zusammenfügen
schauan
Hallöchen,

das müssten dann aber Einstellungen im System sein :-( Excel selbst entfernt keine Makros. Ich hab das mal auf einem Server erlebt, aber auch nur mit Dateien, die dort gespeichert wurden. ...
Das Makro ist auch wirklich weg?
AW: VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
also hat es sich ja doch geöffnet, nur im DOS? Bin echt Laie... ;)
AW: VBA: Probleme mit pdftk zum Zusammenfügen
UweD
Hallo nochmal

Ja, so wie ich die Doku verstanden habe, wird es auf Commandoebene aufgerufen.

Ich hab es nicht im Einsatz und kann es nicht testen, aber ich denke da waren \ und Anführungszeichen zu viel enthalten.

versuch es mal so.


Sub SUK_Rechnung_Speichern_Und_Versenden()

On Error GoTo ErrorHandler ' Fehlerbehandlung aktivieren

Dim ws As Worksheet
Dim savePath As String
Dim fileName As String
Dim outlookApp As Object
Dim outlookMail As Object
Dim emailRecipient As String
Dim emailSubject As String
Dim emailBody As String
Dim subjectCell As Range ' Variable für Betreffzeile
Dim attachmentPath As String ' Pfad zu den Anhängen
Dim command As String ' Befehlszeile für PDFtk
Dim pdftkPath As String ' Pfad zum PDFtk-Server

' Arbeitsblatt mit den Daten
Set ws = ThisWorkbook.Sheets("SUK Rechnung")

' Pfad zum Speichern des PDFs
savePath = "W:" '####ohne \ am Ende

' Dateiname aus Zelle K11 auslesen
fileName = ws.Range("K11").Value

' PDF speichern
ws.ExportAsFixedFormat Type:=xlTypePDF, fileName:=savePath & "\" & fileName & ".pdf", Quality:=xlQualityStandard

' Betreffzeile auslesen
Set subjectCell = ws.Range("K12") ' Annahme: Betreff ist in Zelle K12
emailSubject = subjectCell.Value ' Wert der Betreffzeile zuweisen

' Outlook-Instanz erstellen
Set outlookApp = CreateObject("Outlook.Application")
Set outlookMail = outlookApp.CreateItem(0)

' Empfänger der E-Mail
emailRecipient = "michael.dedes@sanha.com"

' Text der E-Mail
emailBody = "Hallo Michael," & vbCrLf & _
vbCrLf & _
"anbei die Rechnungen." & vbCrLf & _
vbCrLf & _
"Viele Grüße," & vbCrLf & _
"Heike" & vbCrLf & _
"Accountant" & vbCrLf & _
"T +49 2054 925132" & vbCrLf & _
vbCrLf & _
"mailto:heike.ausderfuenten@sanha.com"

' Pfad zu den Anhängen
attachmentPath = "W:\Anhang WB\" '##### mit \ am Ende

' Pfad zum PDFtk-Server
pdftkPath = """C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe"

' Befehlszeile für PDFtk
command = "cmd /c " & pdftkPath & " " & savePath & "\" & fileName & ".pdf"

' Alle PDF-Dateien im Anhangordner durchlaufen und zur Befehlszeile hinzufügen
Dim attachmentFileName As String
attachmentFileName = Dir(attachmentPath & "*.pdf") ' Alle PDF-Dateien im Ordner abrufen
Do While attachmentFileName <> "" ' Solange es Dateien gibt
command = command & " " & attachmentPath & attachmentFileName
attachmentFileName = Dir ' Nächste Datei abrufen
Loop

MsgBox "Befehlszeile: " & command

' Befehl zum Zusammenführen der PDFs hinzufügen
command = command & " cat output " & savePath & "\" & fileName & "_with_attachments.pdf"""

' PDFs zusammenführen
Shell command, vbHide

' E-Mail zusammenstellen
With outlookMail
.To = emailRecipient
.Subject = emailSubject
.Body = emailBody

' Anhang hinzufügen (die kombinierte PDF-Datei)
.Attachments.Add savePath & "\" & fileName & "_with_attachments.pdf"

.Display ' E-Mail anzeigen
End With

Exit Sub ' Bei erfolgreicher Ausführung den Fehlerhandler überspringen
ErrorHandler:
End Sub



LG UweD
VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
jetzt kommt die Fehlermeldung nicht mehr, aber er hört nach dem erstmaligen Speichern des Blattes auf. Sprich er erzeugt keine Mail. Hat er vorher ohne Zusammenfügen gemacht.

Hatte das mit den "" und \ leider vorhin überlesen.
VBA: Probleme mit pdftk zum Zusammenfügen
Jörg Bergmann
die zusammengefügte Datei finde ich auch nirgends.

VG
Jörg