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

Forumthread: Automatisch speichern als pdf mit Datum

Automatisch speichern als pdf mit Datum
01.11.2023 18:25:51
Koppy83
Hallo zusammen,

ich habe für unsere Feuerwehr einige Dateien erstellt die wir im Einsatz nutzen. Leider sind nicht alle am PC so fit, so das ich gerne manche Sachen automatisieren möchte.

Leider kenne ich mich mit VBA recht wenig aus und hab mir meine Befehle u. A in diesen Forum "zusammen gegoogelt".

Momentan wird bei Makro-Ausführung das Dokument mit "Datum und Uhrzeit" und dem Arbeitsblattnamen im selben Ordner als PDF abgespeichert.

Ich möchte aber gerne, dass die neue Datei zuerst mit "Blattname_Datum_und_Uhrzeit" als PDF und EXCEL Datei abgespeichert wird. Idealerweise in einen Unterordner.

Ist so etwas überhaupt möglich?

Mein bisheriger Befehl lautet:

Dim Jetzt As Variant
Jetzt = Format(Now, "yyyy.mm.dd_hh.mm")
vntFile = Application.GetSaveAsFilename(ThisWorkbook.Path & "\" & Jetzt & "_" & ActiveSheet. _
Name & ".pdf", "PDF Dateien (*.pdf), *.pdf", Title:="Als PDF Speichern")
If vntFile > False Then
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=vntFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True ' wenn nicht angezeigt werden soll False

Es würde mir auch schon sehr helfen wenn nur der Dateiname beim abspeichern als "Blattname_Datum_Uhrzeit" geändert werden könnte.

Dankeschön schon mal für jegliche Hilfe
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Automatisch speichern als pdf mit Datum
01.11.2023 18:56:25
GerdL
Hallo K.

String getauscht.

Sub einseinszwo()


Dim Jetzt As Variant, vntFile As Variant

Jetzt = Format(Now, "yyyy.mm.dd_hh.mm")
vntFile = Application.GetSaveAsFilename(ThisWorkbook.Path & "\" & ActiveSheet.Name & "_" & Jetzt & "_" _
& ".pdf", "PDF Dateien (*.pdf), *.pdf", Title:="Als PDF Speichern")

If vntFile > False Then

ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=vntFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True ' wenn nicht angezeigt werden soll False

End If

End Sub


Gruß Gerd
Anzeige
AW: Automatisch speichern als pdf mit Datum
01.11.2023 20:31:35
Koppy83
Vielen lieben Dank für die super schnelle Antwort.

Das funktioniert auch so weit.
Automatisch speichern als pdf mit Datum
01.11.2023 19:47:02
Namuras
Vielleicht ist das ja deine Lösung :

Sub ExportAsPDF()

Dim filePath As String
Dim fileName As String

' Pfad und Dateiname der aktuellen Excel-Datei festlegen
filePath = ThisWorkbook.Path & "\"

' Neuen Ordner erstellen mit aktuellem Datum und Uhrzeit (falls noch nicht vorhanden)
Dim folderName As String
folderName = Format(Now(), "dd-mm-yyyy_hhmmss")
If Dir(filePath & folderName, vbDirectory) = "" Then
MkDir filePath & folderName
End If

' Dateiname für die PDF-Datei festlegen
fileName = "Tabelle_" & Format(Now(), "dd-mm-yyyy_hhmmss") & ".pdf"

' Tabelle als PDF exportieren
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
filePath & folderName & "\" & fileName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ExportAsPDF
End Sub
Anzeige
AW: Automatisch speichern als pdf mit Datum
01.11.2023 20:27:04
Koppy83
Das funktioniert leider nicht ganz.

Es kommt Laufzeitfehler 52. und wenn ich ins Makro rein gehe markiert er mir folgende Zeile:

If Dir(filePath & folderName, vbDirectory) = "" Then
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Automatisches Speichern von Excel-Daten als PDF mit Datum


Schritt-für-Schritt-Anleitung

Um deine Excel-Daten automatisch als PDF mit einem spezifischen Datum und Uhrzeit im Dateinamen zu speichern, kannst du folgendes VBA-Skript verwenden. Diese Anleitung geht davon aus, dass du mit Excel VBA arbeiten kannst.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deinWorkbookName)" > Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:

    Sub ExportAsPDF()
       Dim filePath As String
       Dim fileName As String
    
       filePath = ThisWorkbook.Path & "\"
       Dim folderName As String
       folderName = Format(Now(), "dd-mm-yyyy_hhmmss")
       If Dir(filePath & folderName, vbDirectory) = "" Then
           MkDir filePath & folderName
       End If
    
       fileName = "Tabelle_" & Format(Now(), "dd-mm-yyyy_hhmmss") & ".pdf"
    
       ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
           filePath & folderName & "\" & fileName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.
  5. Du kannst das Makro nun ausführen, um deine Tabelle als PDF zu speichern.

Häufige Fehler und Lösungen

Laufzeitfehler 52: Wenn du beim Ausführen des Makros auf diesen Fehler stößt, überprüfe, ob der Pfad korrekt ist und ob der Ordner, in den du die PDF speichern möchtest, existiert. Achte darauf, dass keine ungültigen Zeichen im Dateinamen enthalten sind.

PDF nicht automatisch speichern: Stelle sicher, dass du das Makro korrekt ausführst. Du kannst auch den Workbook_BeforeSave Event verwenden, um die PDF automatisch zu speichern, wenn du die Excel-Datei speicherst.


Alternative Methoden

Eine alternative Methode besteht darin, die PDF-Dateien über einen Button in deiner Excel-Datei zu speichern. Du kannst einen Button einfügen und das Makro daran binden. So kannst du die PDF-Datei mit nur einem Klick speichern.

  1. Gehe zu Entwicklertools > Einfügen > wähle einen Button.
  2. Ziehe den Button auf dein Arbeitsblatt und wähle das ExportAsPDF-Makro aus, um es zu verknüpfen.

Praktische Beispiele

Hier ist ein Beispiel, wie du das Skript anpassen kannst, um den Dateinamen und die Struktur weiter zu optimieren:

Sub ExportAsPDF()
    Dim filePath As String
    Dim fileName As String
    Dim sheetName As String

    sheetName = ActiveSheet.Name
    filePath = ThisWorkbook.Path & "\"

    fileName = sheetName & "_" & Format(Now(), "yyyy-mm-dd_hh-mm") & ".pdf"

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        filePath & fileName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Dieses Beispiel speichert die PDF-Datei im Format "Blattname_Datum_Uhrzeit".


Tipps für Profis

  • Erstellungsdatum PDF ändern: Du kannst die PDF-Datei nach dem Speichern mithilfe von externen Tools bearbeiten, um das Erstellungsdatum zu ändern.
  • VBA-Befehle Übersicht für PDF: Es gibt viele nützliche VBA-Befehle, die speziell für den Umgang mit PDF-Dateien entwickelt wurden. Recherchiere in der Excel VBA Befehle Übersicht, um mehr über diese Befehle zu erfahren.
  • Automatisierung: Du kannst das Speichern als PDF auch in regelmäßigen Abständen automatisieren, indem du Timer-Funktionen in VBA verwendest.

FAQ: Häufige Fragen

1. Wie kann ich die PDF-Datei in einem anderen Ordner speichern?
Du kannst den filePath anpassen, um auf einen anderen Ordner zu verweisen, indem du den vollständigen Pfad in die Variable einfügst.

2. Was tun, wenn ich nicht weiß, wie ich Makros in Excel aktiviere?
Du musst möglicherweise die Makros in den Excel-Optionen aktivieren. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter und aktiviere die Makros.

3. Kann ich mehrere Blätter gleichzeitig als PDF speichern?
Ja, du kannst eine Schleife in dein Makro einfügen, um durch alle gewünschten Blätter zu iterieren und jedes Blatt als PDF zu speichern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige