3.4k Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.2k Punkte)
Hallo,

ich habe eine Excelsheet, das über verschiedene Eingaben aus einem festgelegten Gültigkeitsbereich unterschiedliche Ergebnisse berechnet. Ich möchte nun jedes dieser Ergebnisse in einer gesonderten pdf auf dem Desktop speichern.
Im konkrerten Fall möchte ich für alle drei Namen in der Spalte "I" jeweils eine pdf. gem. def. Druckbereich erstellen.
Zur besseren Veranschaulichung habe ich eine Testdatei angehängt.
Hat jemand einen Tipp für einen entsprechenden Code?
Danke und Gruß
Andreas

http://www.file-upload.net/download-8708480/TestDatei.xlsx.html

11 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Andreas,

versuch es mal mit den folgenden Makro.

Sub DruckPDF()

Dim zeile As Long
Dim pfad As String

For zeile = 1 To ActiveSheet.Range("I" & Rows.Count).End(xlUp).Row

If IsEmpty(ActiveSheet.Cells(zeile, 9)) = False Then
ActiveSheet.Range("B1") = ActiveSheet.Cells(zeile, 9)
'Achtung! Pfad anpassen!!!
pfad = "C:\Dokumente und Einstellungen\DeinName\Desktop\" & ActiveSheet.Cells(zeile, 9)
'Speichern als PDF - geht ab Excel 2007
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pfad, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If

Next zeile

End Sub

Den Pfad für den Desktop musst du noch nach deinen Bedürfnissen anpassen.
Das Makro benötigt Excel ab Version 2007.

Gruß

M.O.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo M.O.,

vielen Dank, klappt beim ersten mal. Tolle Lösung!!!
Andreas
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Andreas,

danke für die Rückmeldung.

Gruß

M.O.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo M.O.

ich habe jetzt den Code in meine Echt-Datei übernommen. Auch hierfunktioniert er eigentlich bis ich mittendrin auf einen Datensatz eine Fehlerausschrift erhalte "Datei ist nicht gespeichert"? Woran könnte das den liegen?

Dann wollte ich den Pfad noch um einen "Anhang" ergänzen .....& "/" & ActiveSheet.Cells(15, 2). Das klappt aber auch nicht. Gibt es einen Code der das "verketten" ersetzt oder wie könnte ich den Anhang noch zum Dateinamen hinzufügen?

Danke im Voraus!!!
Andreas
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

nimm statt "\" einfach "_". Also so:

pfad = "C:\Dokumente und Einstellungen\DeinName\Desktop\" & ActiveSheet.Cells(zeile, 9) & "_" & ActiveSheet.Cells(15, 2)


Das Zeichen "\" gehört zu den Zeichen, die du in einem Dateinamen nicht verwenden darfst:
\ / : * " < > |

Siehe z.B. hier oder hier.

Gruß

M.O.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

nochmal ich :-). Warum eine Datei nicht gespeichert wird, kann ich so natürlich nicht sagen. Könnte vielleicht am Namen liegen.

Gruß

M.O.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo M.O.,

danke für den Hinweis, das klappt auch bis zur Zeile pfad..... ganz gut. Allerdings wird der nachfolgende Exportbefehl nicht mehr ausgeführt. Ohne die Ergänzung & "_" & ActiveSheet.Cells(15, 2) hatte es aber noch funktioniert..???

pfad = "C:\Users\Andreas Rudolph\Andreas Safe\TC Weimar 1912 e.V\Training\Rechnungen\" _
& ActiveSheet.Cells(zeile, 9) & "_" & ActiveSheet.Cells(15, 2)

MsgBox pfad

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pfad, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Gruß
Andreas
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Andreas,

pfad = "C:\Users\Andreas Rudolph\Andreas Safe\TC Weimar 1912 e.V\Training\Rechnungen\" _
& ActiveSheet.Cells(zeile, 9) & "_" & ActiveSheet.Cells(15, 2)


Ist der Unterstrich bei "..Rechnungen\"_& ActiveSheet.. dem Zeilenumbruch im VBA-Editor geschuldet oder soll das mit in den Pfad und Dateinamen (dann wäre das nämlich falsch)?
Eine Ferndiagnose ohne die Tabelle zu sehen ist natürlich schwierig.
Was steht denn in B15?

Gruß

M.O.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo M.O.,

danke für den Hinweis. Der Fehler liegt entweder bei unerlaubten Zeichen oder der Audruck=Name der Datei ist zu lang. Kannst du mir noch sagen wie lang ein Dateiname sein darf?
Sonst funktioniert deine Formel wirklich einwandfrei!!!!!
Danke
Andreas
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Andreas,

das kommt darauf an :-). Siehe hier.

Bei Windows dürfen Dateinamen bis zu 256 Zeichen lang sein (inklusive eventueller Pfadangabe).

Gruß

M.O.
...