Worksheets als PDFs var. Speicherpfad
30.05.2021 16:26:07
Marvin
ich habe mich hier schon durchgesucht und denke den Code für folgende Thematik ganz gut zusammengebaut. Ich möchte jedes Worksheet der Arbeitsmappe als ein einzelnes PDF speichern. Soweit so gut, das klappt auch, wenn ich für jedes Worksheet separat im VBA einen Code habe und dort den Speicherort händisch definiere nach der Funktion ExportAsFixedFormat, siehe hier:
Sub Alle_als_PDF()
Sheets("aaa").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\xxx\xxxx\xxx\xxx\händisch eingetippter Name.pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Sheets("bbb").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\xxx\xxxx\xxx\xxx\händisch eingetippter Name2.pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
End Sub
Nun möchte ich aber, da auch andere Kollegen die Arbeitsmappe nutzen sollen, einen variablen Speicherort haben, den ich nicht pro Sheet im VBA angebe. Diesen habe ich in Zelle B13 im Arbeitsblatt "Steuerung", von wo aus man verschiedene Makros startet, angegeben. Auch sollen die Namen der einzelnen PDFs den Namen der Worksheets entsprechen, daher "ws.name" unten im Code.Der Pfad ist nach folgendem Schema angegeben in Zelle B13: C:\Users\xxx\xxx\
Wichtig ist hier ja vor allem das letzte Backslash, damit es danach mit dem Dateinamen weitergehen kann.
Leider bekomme ich immer die folgende Fehlermeldung: Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ungültiges Argument. Der Debugger setzt mir den Pfeil vor die Zeile "OpenAfterPublish" und markiert den gesamten Part ab "ws.Export... " gelb.
Sub PDFs_variabler_Pfad()
Dim strName As String
Dim ws As Worksheet
strName = ThisWorkbook.Worksheets("Steuerung").Range("B13").Value
For Each ws In ThisWorkbook.Worksheets
ws.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=strName & ws.Name & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Next ws
End Sub
Kann jemand helfen oder hat eine Idee wie ich den Code umbauen muss ?Lieben Dank vorab für Eure Unterstützung!