Clever-Excel-Forum

Normale Version: Datei mit variablem Datum öffnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo CEF,

eine mehrfach vorhandene Datei: "Geburtstage_Original_20230627", "Geburtstage_Original_20230628", "Geburtstage_Original_20230629", mit jeweils unterschiedlichem Datum soll makrogesteuert geöffnet werden. Es muss aber sichergestellt sein, dass ausschließlich die Datei mit dem aktuellsten, letzten und höchsten Datum "Geburtstage_Original_20230629" geöffnet wird!

Der nachfolgende Beispielcode funktioniert, würde aber nur die -NOCH NICHT VORHANDENE am 30.06.2023 erstellte Datei mit dem Dateinamen: "Geburtstage_Original_20300630" öffnen.

Code:
aaa = Date
bbb = Mid(aaa, 7, 4) & Mid(aaa, 4, 2) & Mid(aaa, 1, 2)
MsgBox bbb
If Dir("d:\Excel\Allgemei\Geburtstage_Original_" & bbb & ".xlsm") = "" Then
...
...
End If

Es soll aber die Datei "Geburtstage_Original_20230629" geöffnet werden.

Ist es realisierbar, dass nur die jeweils letzte im Verzeichnis "d:\Excel\Allgemei\" gefundene Datei (selbst wenn der Dateiname: "Geburtstage_Original_20220508" lautet) geöffnet wird?

danke vorab für eventuelle Lösungsvorschläge
wellington
 
Hi,

warum gibt es für jeden Tag eine eigene Datei? Das läßt sich doch in einer Datei unterbringen, macht eine Auswertung deutlich einfacher!
hallo,

anhand des Datums im Dateinamen lässt sich erkennen wann die Datei bearbeitet und erstellt wurde. Das aktuelle Datum wird beim Speichern automatisch hinzugefügt.
Hi,

für mich unverständlich, aber bitte. Wie wäre es, nach dem Speichern der Datei die Vorgängerdatei umzubenennen, dann gibt es nur noch eine Datei, die man aufrufen kann.
hallo Edgar,

ich kann mir gut vorstellen,dass es umständlich ist eine Lösung für mein Vorhaben zu finden. Die benannte Datei wird zwar nicht täglich aber immer mal wieder erweitert. Es ist eine Vorgabe des Hauses dass jede Erweiterung mit dem Tagesdatum im Dateinamen gespeichert wird, darauf habe ich keinen Einfluss.
Wenn eine Lösung zu kompliziert sein sollte, dann müssen wir diese Diskussion nicht fortführen.

mfG
wellington
Hallo wellington,

z.B. so:

Code:
Sub aaa()
  Dim i As Long
  Dim strDatei As String
  Do
    strDatei = Dir("D:\Excel\Allgemei\Geburtstage_Original_" & Format(Date - i, "yyyymmdd") & ".xlsm")
    i = i + 1
  Loop While strDatei = "" And i < 365
  If Len(strDatei) Then
    Workbooks.Open strDatei
  Else
    MsgBox "Keine Datei gefunden."
  End If
End Sub

Gruß, Uwe
hallo Uwe,

dein Lösungsvorschlag ist genial, funktioniert genau so wie ich es mir vorgestellt habe

danke dafür

wellington