Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ordner anlegen und als PDF speichern

Ordner anlegen und als PDF speichern
27.04.2016 09:02:11
Rookie
Hallo liebe VBA Profis,
ich habe folgendes Problem und bräuchte eure Hilfe:
Ich möchte mehrere Tabellenblätter als PDF in einem Ordner speichern. Zuerst soll aber geprüft werden ob der Ordner bereits vorhanden ist, falls nicht soll dieser Angelegt werden und anschließend das PDF in diesem Ordner gespeichert werden.
Der Pfad zu diesem Ordner sowie der Dateiname des PDF sollen sich aus einer festen Vorgabe und verschiedenen Zelleninhalten der aktiven Tabelle generieren.
Leider funktioniert es bei mir nicht. Es kommt die Meldung „Fehler beim Zugriff auf Pfad/Datei“.
Vielleicht kann mir einer von euch weiterhelfen.
Vielen herzlichen Dank im voraus!
Option Explicit
Sub PrüfenAnlegenPDFspeichern()
Dim Pfad As String
Dim Name As String
Dim Datei As String
Dim Endpfad As String
Pfad = "R:\kst128000\individual\Audits\" & Name 'Grundpfad
With ActiveSheet
Name = .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
If Dir(Pfad, vbDirectory) = Name Then
MsgBox "Das Verzeichnis existiert bereits!"
Else
MkDir Pfad
MsgBox "Verzeichnis erstellt."
End If
Endpfad = Pfad & Name & 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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordner anlegen und als PDF speichern
27.04.2016 09:57:16
ChrisL
Hi
Pfad = "R:\kst128000\individual\Audits\" & Name
Zu dem Zeitpunkt ist die Variable Name noch gar nicht definiert.
(n.b. den Begriff "Name" würde ich nicht verwenden, da er a) nichts aussagt und b) auch für VBA verwendet wird z.B. Sheet.Name)
Wenn der Pfad auch den Namen enthält, dann wäre hier wieder etwas falsch:
Endpfad = Pfad & Name & Datei
d.h. der Name wäre doppelt.
cu
Chris

AW: Ordner anlegen und als PDF speichern
27.04.2016 10:51:10
Rookie
Hallo Chris,
vielen Dank für deine Hinweise! Hab ich auch gleich umgesetzt, aber leider funktioniert es immer noch nicht. Stimmt hier vielleicht mit dem MkDir-Befehl etwas nicht?
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) = Ordner Then
MsgBox "Das Verzeichnis existiert bereits!"
Else
MkDir Pfad
MsgBox "Verzeichnis erstellt."
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

Anzeige
AW: Ordner anlegen und als PDF speichern
27.04.2016 11:18:57
ChrisL
Hi
Ja das stimmt, MkDir macht nur ein Verzeichnis auf einmal.

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) = Ordner Then
MsgBox "Das Verzeichnis existiert bereits!"
Else
Call MakeDir(Pfad)
MsgBox "Verzeichnis erstellt."
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

Quelle: https://dbwiki.net/wiki/VBA_Tipp:_Verzeichnis_mit_Unterverzeichnissen_anlegen
cu
Chris

Anzeige
AW: Ordner anlegen und als PDF speichern
28.04.2016 12:21:14
Rookie
Vielen Dank! Funzt!

39 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige