Excel und das ewige Erstelldatum «05.06.2015, 20:19 Uhr»

Dieser Thread ist Teil einer Diskussion zu einem Artikel:  Zum News-Artikel gehen

karnickel

Stammgast
Zum Teil des Artikels mit dem "bestimmten Datum" hätte ich eine Verbesserung einzubringen, die einem den Umweg über den Float-Timestamp erspart:
Code:
ThisWorkbook.BuiltinDocumentProperties("Creation Date") = DateValue("26.11.1985") + TimeValue("01:25:33")

Ausserdem fehlt am Anfang ein wichtiger Schritt, über den man stolpern kann. Beim Erzeugen der Datei mit dem Explorer und "Neu" - "Microsoft Excel Arbeitsblatt" muss man dieses erst öffnen und mit "Datei" - "Speichern unter..." gleich nochmals im Format "Excel Arbeitsmappe mit Makros ( *.xlsm)" ablegen. Von den zwei Dateien braucht man dann die erste gar nicht mehr. Will man die mit dem Erstelldatum behandelte Mappe danach auch wieder ohne Makros (VBA) verwenden, empfiehlt sich die Wiederholung der Replikation als Format "Excel Arbeitsmappe ( *.xlsx)".

Ganz schön viel Klimbim für ein Datum, dass sich im Backstage wohl niemand gross anschauen wird. :unsure:
 

Gaby Salvisberg

Super-Moderator
Hallo karnickel

Warum als *.xlsm speichern? Das Makro, um das Datum zu ändern, muss ja eben nicht in der Datei gespeichert, sondern bloss einmal ausgeführt werden :cool:. Es steht ja auch im Artikel. Kurzfassung: Ganz normale .xlsx-Datei öffnen, VBA-Editor öffnen, Makrocode reinwerfen, jetzt einmal via Play-Taste ausführen, Makrocode wieder löschen. Kein Speichern als *.xlsm nötig!

Man kann z.B. die im Artikel zuletzt gezeigte Variante in die persönliche Makro-Arbeitsmappe stecken. Das wäre diese da:

Code:
Sub ErstellDatumAnpassen()
    Dim fso As Object
    Dim datei As Object
 
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set datei = fso.GetFile(ActiveWorkbook.FullName)

ActiveWorkbook.BuiltinDocumentProperties("Creation Date") = datei.DateCreated
   
    Set datei = Nothing
    Set fso = Nothing
End Sub

Fertig!

Herzliche Grüsse
Gaby
 
Oben