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

Fortlaufende Nummerierung beim Speichern PDF

Forumthread: Fortlaufende Nummerierung beim Speichern PDF

Fortlaufende Nummerierung beim Speichern PDF
07.07.2018 12:13:53
Lu
Moin Zusammen,
im Rahmen meines Studium soll ich mit Hilfe eines Makros eine PDF speichern, welche fortlaufend nummeriert wird. Dabei wird die PDF unter Vorgaben aus Excel und aktuellem Datum abgespeichert.
Da es sich um ein Prüfprotokoll handelt, soll ein Überspeichern vermieden werden. Dabei soll das erste Protokoll ohne Nummerierung abgespeichert werden. Kommt es zu einem weiteren Protokoll, soll dieses mit dem Zusatz "_01.pdf" abgespeichert werden. Darauf folgt dann "_02.pdf", "_03.pdf", etc.
Dim datei As String, Pfad As String, i As Integer
Pfad = "C:\Users\User\Desktop\" & Range("B4").Value & "_" & Range("B7").Value & "_" & Format(Date, "YYMMDD")
i = 0
datei = Dir("Pfad * .pdf")
Do Until datei = ""
i = i + 1
datei = Dir()
Loop
If i = 0 Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pfad & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Else
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pfad & "_" & Format(i, "00") & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End If

Problem:
Die PDF wird durchgehend überschrieben.
Ich habe schon einiges in Excel 13 ausprobiert, da ich aber noch nie richtig mit VBA gearbeitet habe und meine Grundlagen zur C++ Programmierung schon etwas eingestaubt sind, bin ich langsam am verzweifeln. Kann mir jemand helfen ?
Vielen Dank im Vorhinaus :)
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Fortlaufende Nummerierung beim Speichern PDF
07.07.2018 12:36:01
Daniel
Hi
kleiner Programmierfehler beim Verketten von einer Variable mit fixem Text.
Merke: die Variable darf nie INNERHALB der Anführungszeichen stehen, denn dort wird sie nicht als Variable erkannt, sondern der Variablenname wird als normaler Text verwendet.
findest du den Fehler selber?
Gruß Daniel
Anzeige
AW: Fortlaufende Nummerierung beim Speichern PDF
07.07.2018 13:27:11
Lu
Leider nein, steh etwas auf dem Schlauch -.-
datei = Dir(Pfad & "* .pdf") ?
Gruß,
Luisa
AW: Fortlaufende Nummerierung beim Speichern PDF
07.07.2018 13:55:03
Daniel
die Stelle hatte ich gemeint.
ist das Leerzeichen vor dem Punkt absicht?
so wie du jetzt suchst, muss im Dateinamen vor dem Punkt ein Leerzeichen stehen.
dh du musst schauen, ob das Leerzeichen beim Speichern als PDF auch vorkommt und wenn nein, dann eben korrigieren. (an welcher Stelle, überlasse ich dir)
ansonsten, wenn du überschreibschutz haben willst, dann nimm doch noch die Uhrzeit mit in den Dateinamen auf. Wenn du da bis auf die Sekunde runter gehst, wird automatisch immer eine neue Datei erstellt (und falls jemand innerhalb einer Sekunde 2x speichert, hat er nicht viel gändert)
Gruß Daniel
Anzeige
AW: Fortlaufende Nummerierung beim Speichern PDF
07.07.2018 14:42:13
Lu
Leerzeichen entfernt und es läuft einwandfrei :)
Vielen vielen Dank !!
Gruß,
Luisa
;
Anzeige
Anzeige

Infobox / Tutorial

Fortlaufende Nummerierung beim Speichern von PDF-Dateien in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.

  2. Aktiviere die Entwicklertools: Gehe zu „Datei“ → „Optionen“ → „Menüband anpassen“ und aktiviere die Entwicklertools.

  3. Füge ein neues Modul hinzu:

    • Klicke auf „Entwicklertools“ → „Visual Basic“.
    • Wähle im Menü „Einfügen“ die Option „Modul“.
  4. Kopiere den folgenden Code in das Modul:

    Dim datei As String, Pfad As String, i As Integer
    Pfad = "C:\Users\User\Desktop\" & Range("B4").Value & "_" & Range("B7").Value & "_" & Format(Date, "YYMMDD")
    i = 0
    datei = Dir(Pfad & "*.pdf")
    Do Until datei = ""
       i = i + 1
       datei = Dir()
    Loop
    If i = 0 Then
       ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pfad & ".pdf", _
       Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    Else
       ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pfad & "_" & Format(i, "00") & ".pdf", _
       Quality:=xlQualityStandard, IncludeDocProperties:=True, _
       IgnorePrintAreas:=False, OpenAfterPublish:=True
    End If
  5. Teste das Makro: Fülle die Zellen B4 und B7 aus und führe das Makro aus. Die PDF-Dateien sollten nun fortlaufend nummeriert werden.


Häufige Fehler und Lösungen

  • Problem: PDF wird überschrieben

    • Lösung: Stelle sicher, dass du den Dateipfad korrekt angibst. Überprüfe auch, ob du ein Leerzeichen vor dem Punkt im Code hast. Es sollte datei = Dir(Pfad & "*.pdf") sein, ohne Leerzeichen.
  • Problem: Fehler bei der Variable

    • Lösung: Achte darauf, dass Variablen außerhalb von Anführungszeichen stehen. Beispielsweise sollte datei = Dir(Pfad & "*.pdf") korrekt sein.

Alternative Methoden

Eine alternative Methode zur Nummerierung ist die Einbeziehung der Uhrzeit in den Dateinamen. Füge die aktuelle Uhrzeit im gewünschten Format hinzu:

Pfad = Pfad & "_" & Format(Time, "HHMMSS")

Diese Methode stellt sicher, dass jede Datei, die zur gleichen Sekunde gespeichert wird, eine eindeutige Bezeichnung erhält.


Praktische Beispiele

Wenn du beispielsweise das Protokoll für ein Meeting speicherst und die Zellen B4 und B7 mit „Meeting“ und „Protokoll“ füllst, wird die erste Datei „Meeting_Protokoll_230101.pdf“ genannt. Bei weiteren Protokollen wird sie „Meeting_Protokoll_230101_01.pdf“, „Meeting_Protokoll_230101_02.pdf“ usw. genannt.


Tipps für Profis

  • Automatisiere den Speicherort: Verwende Umgebungsvariablen, um den Speicherort dynamisch zu gestalten, z.B. Pfad = Environ("USERPROFILE") & "\Desktop\...".
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um potenzielle Probleme beim Speichern abzufangen. Zum Beispiel:

    On Error GoTo Fehler
    ' Dein Code hier
    Exit Sub
    Fehler:
      MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Frage
Wie kann ich das Makro anpassen, damit es in einer bestimmten Excel-Version funktioniert?
Antwort: Achte darauf, dass der Code mit VBA in Excel 2013 oder neuer kompatibel ist. Ältere Versionen könnten andere Methoden erfordern.

2. Frage
Kann ich das Makro auch für andere Dateiformate verwenden?
Antwort: Ja, du kannst den Dateityp in der Methode ExportAsFixedFormat anpassen, um andere Formate wie XPS zu verwenden.

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