Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1472to1476
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 erstellen: Datei bereits vorhanden

PDF erstellen: Datei bereits vorhanden
03.02.2016 20:10:37
Henner
Guten Abend zusammen
Mit folgendem Code exportiere ich eine 2-seitige PDF Datei, das funktioniert auch prima.

Sub PDF()
Dim strPfad As String
Dim strDateiName As String
Dim strSpeicher As String
strPfad = ActiveWorkbook.Path & "\"
strDateiName = Sheets("Auswertung").Range("A1")
strSpeicher = strPfad & strDateiName
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strSpeicher, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=2,  _
OpenAfterPublish:=True
End Sub

Wenn nun aber der Dateiname im Zielpfad bereits existiert bricht Excel den Export mit Fehlermeldung ab - soweit auch verständlich.
Frage:
Ist es möglich, die neu erzeugte Datei mit einer Erweiterung automatisch umzubenennen? So ist es bei anderen MS Anwendungen Standard, da die PDF Dateien automatisch erzeugt werden soll keine manuelle Änderung erforderlich sein.
Beispiele:
1. Datei "Auswertung.pdf" existiert noch nicht. Erzeuge: "Auswertung.pdf"
2. Datei "Auswertung.pdf" existiert bereits. Erzeuge: "Auswertung (1).pdf"
3. Datei "Auswertung (1).pdf" existiert bereits. Erzeuge "Auswertung (2).pdf"
Diese Logik soll sich fortsetzen
Ich hoffe ich konnte mein Anliegen deutlich ausdrücken. Bei Fragen bitte fragen.
Besten Dank & Gruss, Henner

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

Betreff
Datum
Anwender
Anzeige
AW: PDF erstellen: Datei bereits vorhanden
04.02.2016 07:59:51
fcs
Hallo Henner,
meines Wissens überschreibt der PDF-Export eine vorhandene Datei. Probleme gibt es, wenn die vorhandene Datei geöffnet ist.
Mit folgenden Ergänzungen wird eine automatische Nummerierung der erzeugten PDF erreicht.
Voraussetzung: Der Dateiname in Sheets("Auswertung").Range("A1") endet mit ".pdf".
Wenn nicht, dann müssen im Makro einpaar kleine Anpasungen gemacht werden, damit das einfügen der forlaufenden Nummer funktioniert.
Gruß
Franz
Sub PDF()
Dim strPfad As String
Dim strDateiName As String
Dim strSpeicher As String
Dim iCount As Integer
strPfad = ActiveWorkbook.Path & "\"
strDateiName = Sheets("Auswertung").Range("A1")
strSpeicher = strPfad & strDateiName
If Dir(strSpeicher)  "" Then
Do
iCount = iCount + 1
strSpeicher = strPfad & Replace(strDateiName, ".pdf", "(" & Format(iCount, "0") & ") _
.pdf")
Loop Until Dir(strSpeicher) = ""
End If
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strSpeicher, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=2, _
OpenAfterPublish:=True
End Sub

Anzeige
AW: PDF erstellen: Datei bereits vorhanden
04.02.2016 20:57:08
Henner
Guten Abend Franz,
besten Dank für Deinen Vorschlag. Ich werde die ganze Sache nochmal testen, insbesondere in Bezug auf die Problematik nur bei geöffneter bestehender Datei. Den Counter halte ich aber in jedem Fall für sinnvoll. Ich bin erst morgen wieder am Windows PC und werde mich nochmals melden.
Vielen Dank nochmal! Schönen Abend, Gruss Henner

-ERL- AW: PDF erstellen: Datei bereits vorhanden
06.02.2016 14:38:13
Henner
Hallo Franz,
ich konnte nun endlich testen. Du hasttest (natürlich) recht, es kommt nur zur Fehlermeldung wenn die bereits existierende Datei auch geöffnet ist. Wenn sie geschlossen ist wird sie gnadenlos ersetzt. Ich denke die Funktion mit dem Counter, die übrigens 1A funktioniert (DANKE!), ist für mich die beste.
Vielen vielen Dank nochmals! Schönes Wochenende, Gruss Henner

Anzeige
-ERL- AW: PDF erstellen: Datei bereits vorhanden
06.02.2016 17:28:41
Henner
Hallo nochmal,
ich habe den Code nun noch etwas für mich erweitert. Nun stehen dem "Exporteur" alle Möglichkeiten zur Verfügung:
- Normales Exportieren wenn noch keine Datei mit gleichem Namen vorhanden ist
- Ersetzen der bestehenden Datei inkl. Fehlerbehandlung wenn bestehende Datei geöffnet ist
- Hinzufügen einer neuen Version mit Erweiterung

Sub PDF()
If Dir(ActiveWorkbook.Path & "\" & ActiveSheet.Range("V1"))  "" Then
antwort = MsgBox("The file '" & ActiveSheet.Range("V1") & "' already exists." & vbCrLf & " _
Do you want to replace it?", vbYesNoCancel + vbQuestion, "Evaluation")
If antwort = vbCancel Then Exit Sub
On Error GoTo ErrRow
If antwort = vbYes Then Kill ActiveWorkbook.Path & "\" & ActiveSheet.Range("V1")
End If
Dim strPfad As String
Dim strDateiName As String
Dim strSpeicher As String
Dim iCount As Integer
strPfad = ActiveWorkbook.Path & "\"
strDateiName = ActiveSheet.Range("V1")
strSpeicher = strPfad & strDateiName
If Dir(strSpeicher)  "" Then
Do
iCount = iCount + 1
strSpeicher = strPfad & Replace(strDateiName, ".pdf", " (" & Format(iCount, "0") & " _
).pdf")
Loop Until Dir(strSpeicher) = ""
End If
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strSpeicher, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=2, OpenAfterPublish:=True
Exit Sub
ErrRow:         antwort = MsgBox("The existing file is opened and could not be replaced." &  _
vbCrLf & "Close the existing file and try again.", vbOKOnly + vbCritical, "Evaluation")
End Sub
Vielleicht kann es ja mal jemand brauchen. Gruss Henner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige