Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1656to1660
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

.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


		

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
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!

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige