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

Forumthread: Datum in Dateinamen

Datum in Dateinamen
02.09.2013 18:54:27
Kai
Hallo,
Die Archivsuche hat mich leider nicht zum Ziel führen können.
Ich möchte bei einer vorhandenen Datei beim Speichern Datum und Uhrzeit einfügen lassen, so dass sich im Laufe des Tages mehrere Dateien anhäufen.
Habe folgenden VBA-Code:

Public Sub SpeichernMitDatumUndUhrzeit()
With ThisWorkbook
Call .Save
Call .SaveAs "Abrechnung_" & Format(Now, "yyyy-mm-dd, hh.mm") & ".xls")
End With
End Sub

Wenn ich es als Macro laufen lasse funzt es, aber nicht wenn ich per Tastenkürzel speichere.
Wo liegt der Fehler?
Dank im Voraus.
Kai

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum in Dateinamen
02.09.2013 19:15:21
Hajo_Zi
Hallo Kai,
Du benutzt eine XLSM Datei, da FileFormat:=xlExcel8 angegeben werden.

AW: Datum in Dateinamen
02.09.2013 20:19:59
Kai
Hallo Hajo,
verstehe nicht was du meinst. Die Datei wird, da sie auch noch auf alten Rechnern laufen muss im 2004er-Format abgespeichert.
Wie sollte der Code aussehen?
Gruß
Kai

Anzeige
AW: Datum in Dateinamen
02.09.2013 20:45:45
ing.grohn
Hallo Kai,
versuch mal:

Sub SpeichernMitDatumUndUhrzeit()
With ThisWorkbook
.Save
.SaveAs "Abrechnung_" & Format(Now, "yyyy-mm-dd, hh.mm") & ".xls"
End With
End Sub

funktioniert mit 2003
Mit freundlichen Grüßen
Albrecht

Anzeige
AW: Datum in Dateinamen
02.09.2013 21:57:24
Kai
Hallo Albrecht,
auch dieser Code funzt nur wenn ich ein Macro laufen lasse, aber nicht wenn ich ctrl+sctrl+s bzw. das Speichernsymbol drücke.
Gruß
Kai

AW: Datum in Dateinamen
03.09.2013 19:09:13
ing.grohn
Hallo Kai,
wenn du in DieseArbeitsmappe, Workbook stehen hast:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
SpeichernMitDatumUndUhrzeit
End Sub

sollte es klappen mit STRG SHIFT S.
Mit freundlichen Grüßen
Albrecht
(zumindest in 2003 tuts)

Anzeige
AW: Datum in Dateinamen
03.09.2013 20:28:17
Kai
Hallo,
beide Antworten sind ja gleich. Und abschmieren tust immer noch.
Also, ich habe unter „TisWorkbook" folgenden Code stehen:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
SpeichernMitDatumUndUhrzeit
End Sub
Sub SpeichernMitDatumUndUhrzeit()
With ThisWorkbook
.Save
.SaveAs "Abrechnung_" & Format(Now, "yyyy-mm-dd, hh.mm") & ".xls"
End With
End Sub

Die Datei wird auch gespeichert, allerdings wird die alte überschrieben und eine neue Datei angelegt. Dabei schmiert Excel immer ab.
Wahrscheinlich sollte der Code so verändert werden, dass die alte Datei erhalten bleibt und nur 1 neue Datei angelegt wird.
Mir ist das jedenfalls schleierhaft.
Gruß
Kai

Anzeige
AW: Datum in Dateinamen
03.09.2013 20:43:20
Kai
Ich habe es jetzt mal so probiert:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
SpeichernMitDatumUndUhrzeit
End Sub
Sub SpeichernMitDatumUndUhrzeit()
With ThisWorkbook
.Save
.SaveCopyAs "Abrechnung_" & Format(Now, "yyyy-mm-dd, hh.mm") & ".xls"
End With
End Sub

Dann klappt's. Problem ist nur, dass der Kunde dann in der alten Datei weiterarbeitet. Jetzt müsste ich ihn dazu zwingen in der neuen weiterzuarbeiten. Dazu müsste ich die alte Datei beim bzw. nach dem Speichern schließen lassen. Da bekomme ich aber immer Laufzeitfehler:
Versuch 1:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
SpeichernMitDatumUndUhrzeit
End Sub
Sub SpeichernMitDatumUndUhrzeit()
With ThisWorkbook
.Save
.SaveCopyAs "Abrechnung_" & Format(Now, "yyyy-mm-dd, hh.mm") & ".xls"
.Close
End With
End Sub

Versuch 2:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
SpeichernMitDatumUndUhrzeit
End Sub
Sub SpeichernMitDatumUndUhrzeit()
With ThisWorkbook
.Save
.SaveCopyAs "Abrechnung_" & Format(Now, "yyyy-mm-dd, hh.mm") & ".xls"
End With
With ThisWorkbook
.Close
End With
End Sub

Lieber wäre mir aber die Version mit dem Speichern unter aktuellerm Zeitstempel mit weiterarbeiten und ohne Absturz.
Gruß.
Kai

Anzeige
AW: Datum in Dateinamen
03.09.2013 20:58:02
ing.grohn
Hallo Kai,
In "DieseArbeitsMappe" steht (nur):

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
SpeichernMitDatumUndUhrzeit
End Sub

(mit NUR meine ich: es können natürlich noch andere Ereignisse wie Workbook_Activate() etc dort auftauchen. Nicht aber deine Prozedur!)
Die Prozedur: SpeichernMitDaumUndUhrzeit (Sub Spei.... bis ...END Sub) gehört in ein "Allgemeines Modul", z.B.: Modul1:
Falls es noch kein Modul gibt über Menue Einfügen Modul eins hizufügen.
mit freundlichen Grüßen
Albrecht

Anzeige
AW: Datum in Dateinamen
03.09.2013 21:05:03
Kai
Hallo Albrecht,
OK, habe ich angepasst. „SpeichernMitDatum" steht jetzt in „Modul1". Schmiert aber immer noch ab.
Gruß.
Kai

AW: Datum in Dateinamen
04.09.2013 09:02:22
ing.grohn
Hallo Kai,
k.A.
ich hab "nur" 2003 und kann zu höher nicht viel sagen!
Bleibt nur (was hier oft geraten wird): Beispiel hochladen
MfG
Albrecht

Anzeige
AW: Datum in Dateinamen
03.09.2013 01:51:24
KlausF
Hallo Kai,
wenn dein Code wirklich funktioniert dann gehe in das Modul
Diese Arbeitsmappe (bzw. ThisWorkbook bei engl. Version)
und gebe folgendes ein:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
SpeichernMitDatumUndUhrzeit
End Sub
Dann sollte es auch mit ctrl funktionieren ...
Gruß
Klaus

Anzeige
AW: Datum in Dateinamen
03.09.2013 15:00:07
Kai
Hallo Klaus,
Excel speichert jetzt auch mit Tastaturkürzel, stürzt dann aber auch jedes Mal ab.
Weißt du Rat?
Gruß
Kai
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum im Dateinamen speichern: So klappt's mit Excel VBA


Schritt-für-Schritt-Anleitung

Um das Datum im Dateinamen zu speichern, kannst Du folgenden VBA-Code verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:
    • Rechtsklicke auf "VBAProject (DeineDatei.xlsm)".
    • Wähle "Einfügen" und dann "Modul".
  3. Kopiere den folgenden Code in das Modul:
Sub SpeichernMitDatumUndUhrzeit()
    With ThisWorkbook
        .Save
        .SaveAs "Abrechnung_" & Format(Now, "yyyy-mm-dd, hh.mm") & ".xls"
    End With
End Sub
  1. Füge den folgenden Code in das "DieseArbeitsmappe" Modul ein:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    SpeichernMitDatumUndUhrzeit
End Sub
  1. Speichere Deine Datei im Makro-fähigen Format (XLSM).

Häufige Fehler und Lösungen

  • Excel stürzt ab: Wenn Excel beim Speichern mit einem Datum im Dateinamen abstürzt, kann dies an Konflikten im Code oder an einer nicht unterstützten Excel-Version liegen. Stelle sicher, dass Du den Code korrekt in die Module eingepflegt hast.

  • Die alte Datei wird überschrieben: Um dies zu vermeiden, verwende die .SaveCopyAs Methode anstelle von .SaveAs. So bleibt die alte Datei erhalten:

Sub SpeichernMitDatumUndUhrzeit()
    With ThisWorkbook
        .SaveCopyAs "Abrechnung_" & Format(Now, "yyyy-mm-dd, hh.mm") & ".xls"
    End With
End Sub

Alternative Methoden

Eine weitere Möglichkeit, das Datum im Dateinamen zu speichern, ist die Verwendung von Excel-Formeln. Du kannst eine andere Zelle nutzen, um das aktuelle Datum anzuzeigen, und diese dann manuell in den Dateinamen einfügen. Eine Formel wie =TEXT(HEUTE(),"yyyy-mm-dd") könnte hier hilfreich sein.


Praktische Beispiele

Hier ist ein Beispiel, wie die Datei gespeichert werden könnte:

Sub SpeichernMitDatumUndUhrzeit()
    Dim dateiname As String
    dateiname = "Abrechnung_" & Format(Now, "yyyy-mm-dd, hh.mm") & ".xls"
    ThisWorkbook.SaveCopyAs dateiname
End Sub

In diesem Beispiel wird ein Dateiname mit dem aktuellen Datum und der Uhrzeit generiert, was dir hilft, eine Übersicht über verschiedene Versionen der Datei zu behalten.


Tipps für Profis

  • Datum im Dateinamen formatieren: Stelle sicher, dass das Datum im richtigen Format angezeigt wird. Verwende Format(Now, "yyyy-mm-dd"), um das Datum in der gewünschten Form zu speichern.

  • Makros automatisieren: Nutze Tastenkombinationen, um Deine VBA-Skripte schneller auszuführen. Du kannst das Makro auch einer Schaltfläche im Excel-Dokument zuweisen.


FAQ: Häufige Fragen

1. Wie kann ich das Datum im Dateinamen automatisch aktualisieren?
Du kannst die Workbook_BeforeSave Methode nutzen, um den Dateinamen jedes Mal zu aktualisieren, wenn die Datei gespeichert wird.

2. Funktioniert dieser Code in Excel 2003?
Ja, der Code sollte auch in älteren Versionen von Excel, wie 2003, funktionieren. Achte jedoch darauf, dass die Datei im richtigen Format gespeichert wird (z.B. .xls für Excel 2003).

3. Ist es möglich, den Dateinamen anpassen?
Ja, Du kannst den Dateinamen nach Belieben anpassen, indem Du die Zeichenfolgen im VBA-Code änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige