Ordner anlegen und als PDF speichern
Schritt-für-Schritt-Anleitung
Um mehrere Tabellenblätter als PDF in einem Ordner zu speichern und sicherzustellen, dass der Ordner existiert, kannst Du den folgenden VBA-Code verwenden. Er überprüft, ob der Ordner bereits vorhanden ist, und erstellt ihn gegebenenfalls.
Sub PrüfenAnlegenPDFspeichern()
Dim Pfad As String
Dim Ordner As String
Dim Datei As String
Dim Endpfad As String
With ActiveSheet
Ordner = .Cells(3, 8).Value & "\" & .Cells(7, 18).Value & "\" & .Cells(4, 8).Value & " " & _
.Cells(6, 8).Value ' Namen der Unterordner
Datei = "\" & .Cells(7, 23).Value & "_" & .Cells(5, 8).Value & ".pdf" ' Dateiname PDF
End With
Pfad = "R:\kst128000\individual\Audits\" & Ordner ' Grundpfad
If Dir(Pfad, vbDirectory) = "" Then
Call MakeDir(Pfad)
MsgBox "Verzeichnis erstellt."
Else
MsgBox "Das Verzeichnis existiert bereits!"
End If
Endpfad = Pfad & Datei
MsgBox "Verzeichnis " & Endpfad
Sheets(Array("Deckblatt Q-Fähigk ", "Proz-BalkenMatrix", "Bewertungsmatrix", _
"QTP dt.", "Maßnahmenplan")).Select
Sheets("Maßnahmenplan").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Endpfad, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
Private Function MakeDir(FolderName As String)
Dim S As Variant, I As Long, F As String
S = Split(FolderName, "\")
For I = LBound(S) To UBound(S)
If S(I) <> "" Then
F = F & S(I) & "\"
On Error Resume Next
MkDir F
On Error GoTo 0
End If
Next I
End Function
Häufige Fehler und Lösungen
-
Fehler beim Zugriff auf Pfad/Datei: Stelle sicher, dass der Pfad korrekt ist und dass Du die notwendigen Berechtigungen hast. Überprüfe auch, ob der Ordnername korrekt generiert wird.
-
Verzeichnis existiert bereits!: Wenn diese Meldung erscheint, ist der Ordner bereits vorhanden. Du solltest sicherstellen, dass der Code nicht versucht, den Ordner erneut zu erstellen.
Alternative Methoden
Wenn Du einen Ordner erstellen und mehrere Dateien als PDF speichern möchtest, kannst Du auch eine Kombination aus Makros und Excel-Funktionen verwenden. Eine andere Möglichkeit ist die Nutzung von Power Automate, um die PDF-Dateien automatisch zu generieren und zu speichern.
Praktische Beispiele
Angenommen, Du hast eine "Bewertungsmatrix" in Excel, die Du regelmäßig als PDF speichern möchtest. Mit dem oben genannten VBA-Skript kannst Du die Matrix automatisch in einem bestimmten Ordner ablegen, ohne manuell eingreifen zu müssen. Passe einfach die Zellreferenzen an Deine spezifischen Anforderungen an.
Tipps für Profis
-
Benutze aussagekräftige Namen für Deine Ordner. Vermeide es, den Begriff "Name" in Variablen zu verwenden, da dies zu Verwirrung führen kann.
-
Teste den Code in einer sicheren Umgebung, bevor Du ihn auf wichtige Daten anwendest. So kannst Du sicherstellen, dass alles wie gewünscht funktioniert.
-
Denke daran, dass MkDir nur ein Verzeichnis auf einmal erstellt. Verwende die MakeDir-Funktion, um mehrere Ebenen zu erstellen.
FAQ: Häufige Fragen
1. Wie kann ich sicherstellen, dass die PDF-Datei korrekt gespeichert wird?
Überprüfe den Pfad und den Dateinamen in der MsgBox, bevor Du den Export ausführst.
2. Kann ich mehrere Arbeitsblätter gleichzeitig als PDF speichern?
Ja, Du kannst mehrere Arbeitsblätter in der Sheets(Array(...)).Select-Anweisung auflisten, um sie als eine einzige PDF-Datei zu exportieren.
3. Was passiert, wenn der Ordner nicht existiert?
Das Skript erstellt den Ordner automatisch, wenn er nicht vorhanden ist, bevor es die Datei speichert.