Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

.pdf per VB in einen Unterordner abspeichern

Forumthread: .pdf per VB in einen Unterordner abspeichern

.pdf per VB in einen Unterordner abspeichern
28.11.2018 09:24:11
Kalle
Guten Morgen liebe VB-Spezialisten
Ich grüble schon seit Tagen über dieses Problem. Meine VB-Kenntnisse sind eher bescheiden. Bin deshalb auch ganz stolz darüber, dass der untenstehende Code funktioniert. Bis auf einen kleinen Wermutstropfen. Die pdf's werden nicht dort gespeichert, wo ich sie erwarte, sondern im Verzeichnis eine Ebene zu früh.Also vor dem Ornder wo die .xls liegt. Wo liegt der (mein) Fehler?
Schon mal ganz herzlichen Dank an alle Helfer.

DateiPfad = Application.ActiveWorkbook.Path
Dim DateiName As String
Select Case MsgBox("Wollen Sie jetzt das Protokoll als .pdf erstellen und speichern?",  _
vbYesNo Or vbQuestion Or vbDefaultButton1, "Hinweis")
Case vbYes
Sheets("Protokoll").Range("C8:M10005").ClearContents 'löscht altes Protokoll
Sheets("Neue Eingaben").Range("B3:M9999").Copy
Sheets("Protokoll").Range("C8").PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Protokoll").Select   'pdf erzeugen und speichern
If Sheets("Protokoll").Range("A2") = 0 Then
MsgBox ("Bitte nur je eine Abteilung und je ein Datum filtern")
Sheets("Neue Eingaben").Protect DrawingObjects:=True, Contents:=True, Scenarios: _
=True _
, AllowFiltering:=True
ElseIf Sheets("Protokoll").Range("A2") = 1 Then
DateiName = DateiPfad & Range("d6") & " " & Range("c6") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
DateiName, Quality:=xlQualityStandard, IncludeDocProperties:=True,  _
IgnorePrintAreas _
:=False, OpenAfterPublish:=True
Sheets("Neue Eingaben").Select
End If
Case vbNo
Exit Sub
End Select
End Sub


		
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: .pdf per VB in einen Unterordner abspeichern
28.11.2018 09:54:27
Karl-Heinz
Hallo Kalle,
der code "DateiPfad = Application.ActiveWorkbook.Path" gibt den Pfad der aktiven Datei ohne abschließendes "\" zurück.
Wenn in der Dateiname in Range(D6) nicht mit einem "\" beginnt (was ich nicht weiß, aber annehme), kann es nicht funktionieren, weil Pfad und Dateiname zusammengemischt werden.
Versuche daher mal dieses:
DateiPfad = Application.ActiveWorkbook.Path & "\"
viele Grüße
Karl-Heinz
Anzeige
AW: .pdf per VB in einen Unterordner abspeichern
28.11.2018 10:15:49
Kalle
Hallo Karl-Heinz
vielen Dank! Auch für die Erklärung: So funktioniert es sogar mit Unterordner:
DateiPfad = Application.ActiveWorkbook.Path & "\Protokolle" & "\"
Vielleicht noch eine ergänzende Zusatzfrage:
Wie ergänze ich den Code per VB um einen Unterordner "Protokolle" anzulegen, falls dieser im Ordner nicht bereits existiert?
Das würde das Ganze natürlich noch optimieren.
Nochmals schon ganz herzlichen Dank
Anzeige
AW: .pdf per VB in einen Unterordner abspeichern
28.11.2018 10:34:06
Karl-Heinz
Hallo Kalle,
habe ich lange nicht mehr gemacht...
Versuche es mal damit:

on error resume next
MkDir ActiveWorkbook.Path & "\Unterordner"

Die MKDir-Funktion legt den Ordner an. Falls er schon da ist, gibt es einen Fehler, deshalb die Anweisung ON Error resume next. Dann wird die MKDir-Anweisung übersprungen.
Oder Du prüfst vorher, ob der gesamte Pfad schon existiert.

if DIR$(ActiveWorkbook.Path & "\Unterordner",vbDirectory)="" then
   MkDir ActiveWorkbook.Path & "\Unterordner"
end if

viele Grüße
Karl-Heinz
Anzeige
AW: .pdf per VB in einen Unterordner abspeichern
28.11.2018 10:54:21
Kalle
Hallo Karl-Heinz, Klasse, das funktioniert ja super! Ich bin begeistert.
Vielen vielen Dank!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige