VBA - Export als PDF läuft nicht
#1
Hallo zusammen,

ich habe den nachfolgenden Code aus einem meiner anderen Projekte kopiert.. In dem anderen Projekt druckt er die Kopien aus & speichert die Datei wie geüwnscht als PDF.
Nur jetzt werden nur die 2 Kopien gedruckt, wenn er die Datei dann aber als PDF speichern will, gibts immer einen Laufzeitfehler, siehe Bild.


Woran könnte das liegen?

Code:
Sub Drucken_Klicken()

Range("B4:K69").Select
Selection.PrintOut Copies:=2

'Als PDF speichern
ThisWorkbook.Sheets("Rechnung").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
 "..." & Sheets("Rechnung").Range("I25").Text & " " & "Datum " & Range("I23"), Quality:=xlQualityStandard, _
 IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
   

End Sub


Angehängte Dateien Thumbnail(s)
   
Top
#2
Ich vermute mal, dass der Pfad der PDF_Datei nicht korrekt angegeben ist.

Was sollen diese drei Punkte?
Was steht in Zelle I25
Was steht in Zelle I23

Hinweis:
In Zelle I25 muss ein gültiger Kompletter Pfad inkl. Dateiname stehen:
Also z.B.: C:\IchbineinePDFDatei

Ich würde mal folgende Zeile ausprobieren.

Code:
'Als PDF speichern
ThisWorkbook.Sheets("Rechnung").ExportAsFixedFormat Type:=xlTypePDF, Filename:= Sheets("Rechnung").Range("I25").Text & " " & "Datum " & Range("I23"), Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Top
#3
Hallo JereMaia,

danke.
Ich hatte einen Tippfehler im Code, es ist nicht Zelle I25, sondern I24. Aber auch in I24 kann ich den Pfad nicht schreiben, denn dort steht die Rechnungsnummer, die ich zusammen mit dem Datum aus I23 in den Dateinamen übernehmen will.

Hier noch mal mein Code mit Pfad: 

Code:
Sub Drucken_Klicken()

Range("B4:K69").Select
Selection.PrintOut Copies:=2

'Als PDF speichern
ThisWorkbook.Sheets("Rechnung").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
 "D:\Desktop" & Sheets("Rechnung").Range("I25").Text & " " & "Datum " & Range("I23"), Quality:=xlQualityStandard, _
 IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

End Sub


Ich verstehe nicht, warum es nicht klappt. Hier mal noch der "Urspungscode" aus dem anderen Projekt, der da problemlos läuft:

Code:
Sub druck()

Range("D2:V45,W6:AE39").Select
Selection.PrintOut Copies:=1

ThisWorkbook.Sheets("EXP_BILLING SHEET").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
 "P:\Abrechnung\BILLING SHEETS\" & Sheets("EXP_BILLING SHEET").Range("F7").Text & " " & Range("J7") & "MISC.pdf", Quality:=xlQualityStandard, _
 IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
 
End Sub

Huh
Top
#4
Hallo

(13.12.2019, 07:30)SteBen schrieb: Ich hatte einen Tippfehler im Code, es ist nicht Zelle I25, sondern I24. Aber auch in I24 kann ich den Pfad nicht schreiben, denn dort steht die Rechnungsnummer, die ich zusammen mit dem Datum aus I23 in den Dateinamen übernehmen will.

wenn da die Punkte vom dem Datum mit dabei sind, kann es nicht funktionieren.
Gruß Stefan
Win 10 / Office 2016
Top
#5
Hi Stefan,

danke für den Hinweis. Gehen denn im Dateinamen gar keine Soderzeichen od. kann ich "/" verwenden?

Danke Dir
Top
#6
Hallo SteBen,

es gelten in VBA natürlich die geleichen Beschränkungen für Dateinamen wie im richtigen Leben. Also "." geht, "/" nicht.

Aber zwei Sachen sind mir aufgefallen:
- Ist Dein Desktop wirklich auf D:\?
- Nach Desktop fehlt ein "\" oder steht der in der Zelle mit drin?

Gruß,
Lutz
Top
#7
Hi Lutz,

danke für die Erklärung & ja, mein Desktop ist auf D.
Hab' noch ein bisschen rumprobiert & jetzt läuft der Code, wie gewünscht.

Code:
Sub Drucken_Klicken()

Range("B4:K69").Select
Selection.PrintOut Copies:=2

'Als PDF speichern


ThisWorkbook.Sheets("Rechnung").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
 "D:\Desktop\Neu\" & "Rechnung_" & Sheets("Rechnung").Range("I24").Text & ".pdf", Quality:=xlQualityStandard, _
 IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
 
End Sub
Top
#8
Hallo SteBen,

bei so einem Problem hilft manchmal, den Dateinamen inkl. Pfad ins Direktfenster zuschreiben. Wenn da ein sinnvoller Text erscheint ist alles gut. Fehlt ein "\" oder so, kann's nicht funktionieren.
Sollte übrigens auch so gehen:

Code:
"D:\Desktop\Neu\Rechnung_" & Sheets("Rechnung").Range("I24").Text & ".pdf"

Gruß,
Lutz
[-] Folgende(r) 1 Nutzer sagt Danke an Lutz Fricke für diesen Beitrag:
  • SteBen
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste