Datei mit Namen und aktuellem datum speichern

  • Excel

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Ibaas.

    Datei mit Namen und aktuellem datum speichern

    Hallo zusammen,

    ich möchte eine Datei erstellen in der Störungen usw. erfasst werden. Die Datei ist mit dem Namen (Schichtübergabe) abgespeichert. Die Datei ist kein Problem, aber das speichern. Ich möchte, das die Datei mit dem Dateinamen sowie mit dem Datum, in dem es angelegt wird, abgespeichert wird.

    Ein Beispiel:
    Ich öffne heute (9.6.2023) die Datei Schichtübergabe. In der Datei wird das heutige Datum angezeigt, Störungen und Probleme werden eingetragen. Jetzt fangen die Probleme an.

    Punkt 1: Wie speichere ich die Datei so, das Name und aktuelles Datum als neue Datei gespeichert werden, und,
    Punkt 2: da die Anlagen im dreischichtbetrieb arbeiten, also auch auf Nachtschicht, darf sich das zu speichernde Datum am 10.6.2023 nicht ändern. Also das wenn ich die Datei, die ich am 9.6.2023 geöffnet habe aber erst am 10.6.2023 speichere den Dateinamen "Schichtübergabe 9.6.22023" hat.

    Die nächste Frühschicht holt sich dann die Datei Schichtübergabe und beginnt mit einer neuen Datei.
    Ich habe schon selbst versucht das Problem zu lösen aber leider ohne Erfolg. Im Anhang habe ich meine Datei beigefügt.

    Ich hoffe ich habe mein Problem verständlich erklärt und bedanke mich im voraus

    Ibaas

    Thema verschoben; Das Thema wird automatisch dort erstellt, wo man sich befindet, wenn man auf [* Neues Thema] klickt. ~VaporiZed
    Dateien

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Willkommen im Forum.

    Mein erster Gedanke wäre eine Excel-Vorlage zu erstellen. Da wird automatisch beim Speichern eine neue Excel-Datei angelegt und die Vorlage bleibt erhalten. Inwieweit das dann mit Excel-Vorlagen mit Makros (xlstm) so klappt, wie Du willst, kann ich Dir nicht sagen, dafür hab ich zu wenig mit Office zu tun.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich komme mal auf Dein ursprüngliches Problem zurück:
    Dein Codeversuch;

    Visual Basic-Quellcode

    1. ​Sub MitZeitstempelSpeichern()
    2. Dim Datumzeitstempel As String
    3. Dim Jetzt As Date
    4. Jetzt = Now()
    5. Datumzeitstempel = "Schichtübergabe " & Year(Date) & Format(Month(Date), "-00-") & Format(Day(Date), "00")
    6. ActiveWorkbook.SaveAs (ThisWorkbook.Path & "\" & Datumzeitstempel & ".xls")
    7. MsgBox (ActiveWorkbook.Path)
    8. End Sub


    mache einfach dies:

    Visual Basic-Quellcode

    1. ​ActiveWorkbook.SaveAs (ThisWorkbook.Path & "\Schichtübergabe " & Format(Now(), "YYYY-MM-DD" & ".xlsx")


    Man sollte Office-Dateien immer im neuen Format (xlsx) abspeichern, wenn es keine zwingende Abhängigkeiten zu Altsystem gibt.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Hallo INOPIAE,

    der Code funktioniert wunderbar. Nur ein Problem besteht noch. Die Datei lässt sich nicht mit Strg S speichern bzw. beim schließen der Datei wird nicht das Datum gespeichert.

    Wäre super wenn das gehen würde, die Datei wird, wenn sie fertig ist, soweit gesperrt, das nur die Eingabefelder frei gegeben werden.
    Du solltest Dir zunächst einmal Gedanken machen, wann sich das Datum ändern soll?
    Wann fängt für Dich der neue Tag? Um 24:00 oder am Ende der Nachtschicht?

    Die Codelogik packst Du dann im VBA Editor in DieseArbeitsmappe - Workbook in die Prozeduren BeforeSave und BeforeClose.

    Wäre super wenn das gehen würde, die Datei wird, wenn sie fertig ist, soweit gesperrt, das nur die Eingabefelder frei gegeben werden.​

    Was verstehst Du unter fertig?
    Wenn die Entwicklung der Felder und Formeln abgeschlossen sind. Dann einfach die Tabellenblätter schützen.
    Oder was anderes?


    Wenn ich mir Deine Anforderungen so anschaue, würde ich ein anderes Herangehen empfehlen.
    Deine Speicherlogik lagerst Du in ein Excel-Add-In aus, dass eine Schaltfläche im Ribbon (dem Menüband) erstellt. Die Datendatei wird dann ganz normal geöffnet und über die Schaltfläche gespeichert.
    Der Vorteil, die Pflege der Logik erfolgt nur im Add-In und nicht in jeder Datendatei. Sonst müsstest Du bei Änderungen im Code alle Datendatei anpassen und den Code austauschen. (Nach einem Jahr 365 Dateien). Zum anderen sind die Datendateien dann Makro frei und es kommt nicht der nervige Hinweis, soll die Dateien mit Makros geöffnet werden. (und komme bitte nicht auf die Idee, das über das SicherheitsCenter auszuschalten)
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Das Datum soll sich am Ende der Nachtschicht ändern. Also um 6 Uhr am Folgetag.

    Ja ich meine die Tabellenblätter schützen.

    Das was du da beschrieben hast hört sich sehr kompliziert an. Ich bin ein totaler Excel Laie. Das was ich bisher erstellt habe, habe ich mir zusammen gegoogelt. Mein erster Gedanke war, für jeden tag im Jahr ein eigenes Tabellenblatt zu erstellen. Aber dann müsste ich weit über 300 Blätter erstellen. Das erschien mir zu umständlich. Deshalb kam ich auf die Idee, ein Tabellenblatt auf dem Desktop platzieren und dann die Datei unter den Namen mit Datum zu speichern.
    Ich wusste noch nicht mal das man das irgendwo ausschalten kann.