Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datum automatisch in Dateiname

Datum automatisch in Dateiname
Martin
Hallo,
ich möchte einen Befehl schreiben in dem das Makro das aktuelle Datum nimmt und dieses zu einem Dateiname und (2) umwandelt. Für heute sollte dann also der Dateiname "07 April 2010 (2).xls" heissen, dann sollte das Makro überprüfen ob diese Datei existiert und wenn nicht einen Tag zurückgehen, dh dann testen ob die Datei ""06 April 2010 (2).xls" existiert. Ist dies möglich?
Tausend Dank für jede Hilfe!! Meine 2 VBA Bücher bringen mich seit Stunden nicht weiter...
Anzeige
Dateiüberprüfung
07.04.2010 15:37:28
Backowe
Hi,
Sub Dateiname()
If Dir("C:\Temp\" & Format(Date, "dd mm yyyy") & "(2).xls")  "" Then
MsgBox "C:\Temp\" & Format(Date, "dd mm yyyy") & "(2).xls"
ElseIf Dir("C:\Temp\" & Format(Date, "dd mm yyyy") & "(2).xls")  "" Then
MsgBox "C:\Temp\" & Format(Date - 1, "dd mm yyyy") & "(2).xls"
Else
MsgBox "Existiert auch nicht! Was nun! ;-)"
End If
End Sub
Gruß Jürgen
Anzeige
Finde ich sehr "nett" von dir, dass du hier...
07.04.2010 16:42:01
dir,
…einen neuen Thread zum gleichen Thema aufmachst ohne auf die dort teilweise ähnl Vorschläge überhpt zu reagieren. So Einer/m hilft man dann besonders gern… :-(
Luc :-?
AW: Finde ich sehr "nett" von dir, dass du hier...
07.04.2010 17:28:03
dir,
ach Luc! Ich sitze fast den ganzen Tag schon an dem Makro, habe 2 Bücher und etliche Homepages durchforstet aber kam noch zu keiner Lösung. Dann viel mir ein anderer Lösungsweg ein (Datum in Dateiname) und daraufhin habe ich DER ÜBERSICHT halber einen neuen Thread aufgemacht damit es die Nachwelt auch unter diesem Stichpunkt findet. Mein Gott bist du pingelig. Ich versuche mir selbst VBA beizubringen was trotz mathematischen Studium echt nicht leicht ist, da helfen deine Nörgeleien nicht wirklich. Den anderen danke ich echt sehr herzlich für ihre Beiträge!! Mittlerweile habe ich es hinbekommen, dass er immer einen Tag zurückläuft, aber er hört nicht auf wenn er eine Datei gefunden hat obwohl er das soll :-)
Anzeige
Das ist dein Problem! Mein Makro macht...
07.04.2010 18:40:22
Luc:-?
…genau, was es soll, Martin,
und du musst nicht mal prüfen, wie die letzte Datei hieß…! Allein der WoTag ist entscheidend!
Wenn du meinst, neue Forumsregeln einführen zu müssen, bitte! Aber wundere dich nicht, wenn dann weniger helfen. Ich habe jedenfalls kein Forum und keine 2 VBA-Bücher bemühen müssen, um VBA zu lernen! Also ist das keine Entschuldigung…
Luc :-?
Anzeige
AW: Dateiüberprüfung
07.04.2010 16:45:53
Martin
Jürgen, vielen Dank für deine Hilfe! Ich habe das mal eingebaut aber es passiert nicht wirklich was:
Sub test()
'Variablendeklaration
Dim wb_Quelldatei As Workbook
Dim ws_Quelldatei As Worksheet
Dim wb_Zieldatei As Workbook
Dim ws_Zieldatei As Worksheet
Dim i As Integer
Dim datum As Date
On Error Resume Next
For i = 1 To 10
If Dir("O:\Dat\XXX\02Alle\Trainee\Martin\VBA\" & Format(Date, "ddmmyyyy") & "(2)" & ".xls")  " _
" Then
Else: Dir ("O:\Dat\XXX\02Alle\Trainee\Martin\VBA\" & Format(Date - 1, "ddmmyyyy") & "(2)" & ". _
xls")
Workbook.Open
Set ws_Quelldatei = ActiveWorkbook.Sheets("Tabelle1")
Set ws_Zieldatei = ThisWorkbook.Sheets("Tabelle1")
ws_Zieldatei.Cells(i + 1, 1) = ws_Quelldatei.Cells(2, 1)
ws_Zieldatei.Cells(i + 2, 2) = ws_Quelldatei.Cells(2, 2)
'ActiveWorkbook.Close False
End If
Next i
'Drücke F9
Calculate
End Sub

Das Makro soll schauen ob eine Datei mit dem entsprechenden Datum ab heute beginnend vorhanden ist: Wenn ja, dann die 2 Werte kopieren und dabei immer eine Zeile nach unten rutschen. Wenn die Datei NICHT vorhanden ist, schauen ob eine Datei mit einem Tag zurück existiert usw. Das ganze aber nur zB 10 Mal weil sonst geht er ja bis ins Mittelalter zurück :-) Wichtig ist, dass die Tabelle in der Zieldatei stets fortgeführt wird, dh nihct nur für die letzten 10 existierenden Dateien.
Anzeige
Dann eher so
07.04.2010 17:11:02
Backowe
Hi Martin,
Code ist ungetestet!
Option Explicit
Sub test()
'Variablendeklaration
Dim wb_Quelldatei As Workbook
Dim ws_Quelldatei As Worksheet
Dim wb_Zieldatei As Workbook
Dim ws_Zieldatei As Worksheet
Dim i As Integer
For i = 0 To 9
If Dir("O:\Dat\XXX\02Alle\Trainee\Martin\VBA\" & Format(Date - i, "dd mm yyyy") & "(2)" & ". _
xls")  "" Then
Workbooks.Open "O:\Dat\XXX\02Alle\Trainee\Martin\VBA\" & Format(Date - i, "ddmmyyyy") & "(2) _
" & ".xls"
Set ws_Quelldatei = ActiveWorkbook.Sheets("Tabelle1")
Set ws_Zieldatei = ThisWorkbook.Sheets("Tabelle1")
ws_Zieldatei.Cells(i + 1, 1) = ws_Quelldatei.Cells(2, 1)
ws_Zieldatei.Cells(i + 2, 2) = ws_Quelldatei.Cells(2, 2)
'ActiveWorkbook.Close False
'Drücke F9
Calculate
End If
Next
End Sub

Gruß Jürgen
Anzeige
Warum ein neuer Thread?
07.04.2010 16:38:30
Erich
Hi Martin,
gibt es da außer den Büchern nicht auch noch diesen Thread - heute in diesem Forum?
https://www.herber.de/forum/archiv/1148to1152/t1150436.htm
Wenn du schon meinst einen neuen Thread eröffnen zu müssen, dann verweise doch bitte mit einem Link darauf,
dass es bereits Bemühungen gab. Das habe ich hiermit für dich getan.
Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Warum ein neuer Thread?
08.04.2010 09:57:02
Martin
Hallo,
ich bein bei meinem Problem leider nicht wirklich vorwärts bekommen: Wir gelingt einfach die Verbindung zwischen der Schleife, dem Öffnen der Datei und dann der Beendigung der Schleife nicht:
Sub test()
'Variablendeklaration
Dim wb_Quelldatei As Workbook
Dim ws_Quelldatei As Worksheet
Dim wb_Zieldatei As Workbook
Dim ws_Zieldatei As Worksheet
Dim intCounter As Integer
'On Error Resume Next
intCounter = 1
Filename = Dir("O:\Dat\5080\02Alle\Trainee\Martin\VBA\" & Date & "(2)" & ".xls")
Do While Filename = False
intCounter = intCounter - 1
Workbooks.Open (Dir)
Set ws_Quelldatei = ActiveWorkbook.Sheets("Tabelle1")
Set ws_Zieldatei = ThisWorkbook.Sheets("Tabelle1")
ws_Zieldatei.Cells(i + 1, 1) = ws_Quelldatei.Cells(2, 1)
ws_Zieldatei.Cells(i + 2, 2) = ws_Quelldatei.Cells(2, 2)
'ActiveWorkbook.Close False
Loop
'Drücke F9
Calculate
End Sub
Beim jetzigen Stand öffnet er die Datei gar nicht mehr. Ist denn die Do While-Schleife richtig oder muss ich eher die Do until-Schleife nehmen oder ist das egal? Danke für jeden Tipp!
Anzeige
Viel Spaß bei der Fehlersuche! ;-) oT
08.04.2010 16:29:20
Backowe
;
Anzeige
Anzeige

Infobox / Tutorial

Datum automatisch in Dateiname integrieren


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zum VBA-Editor, indem Du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (Dein Dokument)", wähle "Einfügen" und dann "Modul".

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub Dateiname()
        Dim i As Integer
        Dim wb_Quelldatei As Workbook
        Dim ws_Quelldatei As Worksheet
        Dim ws_Zieldatei As Worksheet
    
        For i = 0 To 9
            If Dir("C:\Temp\" & Format(Date - i, "dd mm yyyy") & "(2).xls") <> "" Then
                Workbooks.Open "C:\Temp\" & Format(Date - i, "dd mm yyyy") & "(2).xls"
                Set ws_Quelldatei = ActiveWorkbook.Sheets(1)
                Set ws_Zieldatei = ThisWorkbook.Sheets(1)
                ws_Zieldatei.Cells(i + 1, 1) = ws_Quelldatei.Cells(2, 1)
                ws_Zieldatei.Cells(i + 2, 2) = ws_Quelldatei.Cells(2, 2)
            End If
        Next i
        'Berechnung nach dem Kopieren
        Calculate
    End Sub
  4. Speichere das Modul und schließe den VBA-Editor.

  5. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle das Makro "Dateiname" und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Datei wird nicht gefunden: Überprüfe den Pfad und den Dateinamen im Code. Achte darauf, dass das Datum im richtigen Format angegeben ist.
  • Makro funktioniert nicht: Stelle sicher, dass Du die Makros in Excel aktiviert hast. Gehe zu "Datei" > "Optionen" > "Trust Center" > "Einstellungen für das Trust Center" > "Makroeinstellungen".
  • Fehlermeldung beim Öffnen der Datei: Verwende On Error Resume Next vor dem Befehl Workbooks.Open, um Fehler zu ignorieren und die Schleife fortzusetzen.

Alternative Methoden

  • Word Dateiname automatisch generieren: Wenn Du in Word arbeiten möchtest, kannst Du ähnliche VBA-Skripte verwenden, um Dateinamen automatisch zu erstellen.
  • Excel Datum automatisch fortlaufend: Verwende Formeln wie =HEUTE() in Zellreferenzen, um dynamisch das aktuelle Datum in andere Zellen zu schreiben.

Praktische Beispiele

  • Beispiel 1: Du möchtest das aktuelle Datum in den Dateinamen einer Excel-Datei integrieren. Verwende folgende Zeile:

    FileName = "Bericht_" & Format(Date, "dd-mm-yyyy") & ".xls"
  • Beispiel 2: Um einen Datumsstempel automatisch hinzuzufügen, modifiziere den Dateinamen wie folgt:

    FileName = "Report_" & Format(Date, "yyyy-mm-dd") & ".xls"

Tipps für Profis

  • Verwende Now statt Date, wenn Du auch die Uhrzeit in den Dateinamen einfügen möchtest.

  • Füge einen Zeitstempel hinzu, um sicherzustellen, dass jeder Dateiname einzigartig ist:

    FileName = "Bericht_" & Format(Date, "dd-mm-yyyy") & "_" & Format(Time, "hhmm") & ".xls"
  • Automatisiere das Speichern: Füge einen ActiveWorkbook.SaveAs Befehl hinzu, um die Datei direkt mit dem neuen Namen zu speichern.


FAQ: Häufige Fragen

1. Frage
Wie kann ich das Datum automatisch in den Dateinamen einfügen?
Antwort: Nutze ein VBA-Makro, das das aktuelle Datum abruft und in den Dateinamen integriert.

2. Frage
Kann ich das Datum auch in einer anderen Sprache formatieren?
Antwort: Ja, Du kannst das Datumsformat im VBA-Code anpassen, um es entsprechend Deinen Bedürfnissen zu formatieren.

3. Frage
Was mache ich, wenn das Makro nicht reagiert?
Antwort: Überprüfe den Code auf Fehler und stelle sicher, dass Du die richtigen Berechtigungen zum Ausführen von Makros hast.

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