Datei mit Name und Datum speichern

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

Ibaas

Aktives Mitglied
Hallo Andreas,

Es gibt z. Z. 5 Anlagen und somit auch 5 PCs. Wie die PCs heißen weis ich nicht auswendig.
Eins vorweg, vielleicht hilft dir das. Ich habe die Datei in einem Ordner auf den Desktop verknüpft und daraus die Datei auf den Desktop verknüpft. Der Ordner und die Datei haben den Namen der Anlage. Und sie funktioniert. Mit Ausnahme, das wenn ich die Datei schließe Excel die Datei unter dem Namen "Schichtübergabe Spule vom "speichern will, weil der Dateiname mit Datum nicht vorhanden ist. Ein weiteres Manko ist, das der Makro Makro erst aktiviert werden muss.
Das sind die einzigen Probleme mit der Datei.

Die Mitarbeiter haben keinen Account. Der PC wird mit dem Namen des PCs angemeldet und jeder kann da ran. Jetzt fragst du dich bestimmt wie es mit der Sicherheit ist. Die wird vom Server über zugriffbeschränkung geregelt. Ich kann von meinem PC aus auf PCs der einzelnen Anlagen zugreifen. Wie genau das funktioniert weis ich nicht. Auf alle Fälle klappt es. Die Meister können das auch.

Hoffe alle Klarheiten sind jetzt beseitigt.

Gruß und einen schönen Sonntag
Werner
 

nochEinAndreas

Stammgast
Servus Werner,
Zitat:
Ich habe die Datei in einem Ordner auf den Desktop verknüpft und daraus die Datei auf den Desktop verknüpft.
Tut mir Leid, das verstehe ich nicht.
Ich rate jetzt mal: Du hast auf dem Desktop einen Ordner, der heißt "Anlage 1". In diesem Ordner hast du ein eine Datei "Anlage 1.xlsm". Das ist die Vorlage. Zu dieser Datei hast du einen Link auf dem Desktop. Stimmt das so?

Wenn ich es richtig verstanden habe, öffnet der Bearbeiter die Datei "Anlage 1.xlsm" über den Link auf dem Desktop. Dann läuft der Makro los. Er soll dann die Datei automatisch nach x Sekunden speichern unter "Anlage 1-2023-06-18.xlsm" (immer aktuelles Datum). Stimmt das so?

Grüße und noch einen schönen Abend,
Andreas
 

Ibaas

Aktives Mitglied
Hallo Andreas,

das ist richtig so.

Über den Dateipfad im Explorer habe ich einen Ordner mit dem Namen der Anlage angelegt. Darin ist die Datei mit dem Anlagennamen. In diesem Ordner werden dann auch die Dateien mit dem neuen Namen gespeichert. Auf dem Desktop ist eine Verknüpfung (Link) mit dem Namen des Ordners der Anlage, falls ein Mitarbeiter die Datei mit dem Datum braucht weil er Vorlage versehentlich geschlossen hat. Die Verknüpfung der Vorlage auf den Desktop habe ich gemacht damit der Kollege nicht immer den Ordner öffnen muss.

Gruß Werner
 

nochEinAndreas

Stammgast
Gute Abend Werner,

so hier nun die nächste Version der Schichtübergabe.
Sie funktioniert so:
  1. Wenn du die Datei das erste Mal öffnest, erscheint das Blatt "Settings", und du wirst gebeten dort Die Zelle B1 und B2 auszufüllen. In B1 kommt die Zeit (in sec.), die zwischen dem Öffnen der Datei und dem Speicher als Datums-Datei bleiben soll. In B2 kommt der Name des Ordners auf dem Desktop, in den die Datumsdateien gespeichert werden sollen. Das musst du halt auf jedem PC 1x einrichten. Du sagtest ja, der Ordnername sei jeweils verschieden.
    Dann die Datei speichern und schließen.
  2. Bei jedem erneuten Öffnen der Datei passiert dann der "normale" Makro-Ablauf:
    1. Das Blatt "Settings" wird ausgeblendet, damit es niemanden stört.
    2. Wenn die Datei, die geöffnet wurde nicht mehr die Vorlage ist, sondern schon einen Datumsnamen hat, wird der Makro beendet. Somit können die Meister die Dateien öffnen, ohne das neu gespeichert wird.
    3. Wenn die Datei die Vorlagen-Datei ist, wird geprüft, ob es schon eine Datums-Datei mit dem heutigen Datum gibt. Falls ja, wird der Makro beendet. Dies ist eine Sicherung, falls ein Bearbeiter aus Versehen ein zweites Mal die Vorlagenmappe öffnet. Nach dem ersten Öffnen wird sie ja als Datumsdatei gespeichert. Damit das nach dem zweiten Öffnen nicht noch mal passiert, diese Sicherung.
    4. Wenn die Vorlagendatei geöffnet wurde und es gibt noch keine Datumsdatei von heute im Desktop-Ordner, wird die Vorlage als Datumsdatei gespeichert.
Ich hoffe, das ist in deinem Sinne. Bei Problemen oder weiteren Wünschen gerne melden.

Grüße und schönen Abend,
Andreas
 

Anhänge

  • Schichtübergabe.zip
    70,2 KB · Aufrufe: 1

Ibaas

Aktives Mitglied
Guten Morgen Andreas,
erstmal recht herzlich Dank für deine Mühen.

Ich komme in den nächsten Tagen leider nicht dazu die Datei zu testen. Aber sobald ich es geschafft habe melde ich mich bei dir.

Gruß und Danke
Werner
 

Ibaas

Aktives Mitglied
Hallo Andreas,
ich habe dein Makro auf meinem Laptop getestet und er funktioniert wunderbar. Bis auf eine Kleinigkeit.

Die Datei wird direkt auf den Desktop gespeichert. Allerdings habe ich keinen direkten Zugriff auf den Desktop sondern nur über eine Verknüpfung.
Wie im Anhang im oberen Ordner zu sehen wird die Datei mit dem Datum gespeichert. Das ist der Ordner den ich direkt auf dem Desktop erstellt habe. Sie sollte allerdings im untern Ordner gespeichert werden. Den nur von da aus kann ich eine Verknüpfung zum Desktop erstellen (Ordner mit der rechten Maustaste anklicken, dann senden an Desktop (Verknüpfung erstellen)). Der Ordner oben rechts ist der Ordner in dem die Datei gespeichert wurde auf den ich keinen Zugriff habe. Nur auf den linken habe habe ich Zugriff.


Gruß
Werner
 

Anhänge

  • Screenshot 2023-06-26.jpg
    Screenshot 2023-06-26.jpg
    167,4 KB · Aufrufe: 2

nochEinAndreas

Stammgast
Guten Abend Werner,

schön, dass es prinzipiell funktioniert.
Also wenn die Datei im Desktop-Unterordner "Schichtübergabe 500\Schichtübergabe 500" gespeichert werden soll, dann musst du im Blatt "Settings" genau das eintragen. In B2 muss dann stehen "Schichtübergabe 500\Schichtübergabe 500", ohne Anführungszeichen.
Öffne also die Datei "Schichtübergabe.xlsm", blende das Blatt "Settings" ein und gib dort in B2 "Schichtübergabe 500\Schichtübergabe 500", (ohne Anführungszeichen) ein. Speichere die Datei und schließe sie.
Danach sollte es hoffentlich funktionieren.

Grüße und schönen Abend,
Andreas
 

Ibaas

Aktives Mitglied
Hallo Andreas,
es funktioniert nicht. Ich gehe davon aus, weil es sich nicht um einen Unterordner des Desktop handelt.

Ich versuche mal es zu erklären wo der Ordner sich befindet. Der Pfad ist natürlich fiktiv da ich keine Interna nennen kann.

"Dieser PC > Laufwerk C > Technik > Produktion > Bereich 104 > Schichtübergabe > 500 > Schichtübergabe 500".

In der Schichtübergabe 500 soll die Datei mit dem Datum gespeichert werden. Hier befindet sich auch die Dateivorlage. Von diesem Pfad aus wird "nur" eine Verknüpfung auf den Desktop erstellt, damit man einen leichteren Zugriff auf die Vorlagendatei bzw. auf den Ordner. Der Desktop ist nicht er Speicherort, so wie du es in dem Makro angegeben hast. Hab versucht den Pfad zu ändern und Desktop einfach entfernt. Aber so einfach ist das nicht, hat nicht geklappt.

Gruß
Werner
 

Anhänge

  • Screenshot 2023-06-27 Laufzeitffehler.jpg
    Screenshot 2023-06-27 Laufzeitffehler.jpg
    227,4 KB · Aufrufe: 1
  • Screenshot 2023-06-27 Pfad .jpg
    Screenshot 2023-06-27 Pfad .jpg
    205,4 KB · Aufrufe: 1

nochEinAndreas

Stammgast
OK, dann haben wir die ganze Zeit gründlich aneinander vorbeigeredet. Ich war immer davon ausgegangen, dass der Speicherort ein Unterordner des Desktops ist. Aber egal.
Frage: Ist es so, dass der Speicherort der Vorlage auch immer und auf allen Rechnern der Ordner ist, in den die Datumsdateien gespeichert werden sollen? Wenn das so ist, dann kann der Makro sich den Ordner auch selber suchen, und du brauchst ihn nicht auf dem "Settings" Blatt einzutragen.

Gruß, Andreas
 

Ibaas

Aktives Mitglied
Hallo Andreas,
ja das ist so. Die Vorlage ist in dem Ordner in dem die Datei mit Datum gespeichert werden soll.

Gruß Werner
 

Ibaas

Aktives Mitglied
PS: Das Blatt Setting kann ja auch weg fallen, wenn automatisch nach 5 Sek. gespeichert wird.

Gruß
Werner
 

nochEinAndreas

Stammgast
So, die neue Version ist fertig.
  • Das Blatt "Settings" gibt es nicht mehr. Das Speichern erfolgt jetzt immer in dem Ordner, in dem die "Schichtübergabe.xlsm" liegt. Die Speicherverzögerung habe ich auf deinen Wunsch hin fest auf 5s eingestellt.
  • Ich habe mir erlaubt, noch eine ganz kleine Änderung auf deinen Blätter vorzunehmen: In der Zelle C4 hattest mit =HEUTE() das aktuelle Datum eingesetzt. Wenn die Mappe allerdings an einem anderen Tag von der Meisterei geöffnet wird, wird das Datum wieder aktualisiert. ich vermute, das ist nicht gewollt.
    Deswegen habe ich statt dessen auf den Blättern "Spät" und "Nacht" dort eingetragen =Früh!C4.
    Nur wenn die Mappe als Vorlage "Schichtübergabe.xlsm" geöffnet wird, trägt der Makro in Früh!C4 das aktuelle Datum ein, nicht als Funktion, sondern feststehend. Dieses Datum bleibt dann beim späteren Öffnen der Mappe als Datumsdatei erhalten. ich hoffe, das ist in deinem Sinne.
Übrigens, falls du mal die Vorlage öffnen willst, ohne gleich neu zu speichern (z.B. um etwas zu ändern): Halte beim Öffnen die Unschalt-Taste fest, dann werden die Makros nicht ausgeführt.
Zusatz: Ich habe eben festgestellt, dass das bei mir nicht immer funktioniert. Weiß jemand, warum?
Und es funktioniert auch nicht, wenn die Mappe über eine Verknüpfung geöffnet wird.

Grüße und einen schönen Abend,
Andreas
 

Anhänge

  • Schichtübergabe.zip
    67,6 KB · Aufrufe: 1

Ibaas

Aktives Mitglied
Hallo Andreas,

habe die Datei getestet.. Sie funktioniert wie ich es mir vorgestellt habe.
Zu deiner Änderung des Datums: Das Problem habe ich erkannt und in einer geänderten Version schon behoben. Trotzdem Danke für den Tipp.
Ich bedanke mich recht herzlich für deine Mühe und deine Geduld. Ich kann das Makro nicht sehen, ist das beabsichtigt?

Gruß und auch dir einen schönen Abend
Werner
 

nochEinAndreas

Stammgast
Hallo Werner,

was heißt, du kannst das Makro nicht sehen? Siehst du den Code im VBA Editor nicht? Der steht im Codebereich von "DieseArbeitsmappe", weil er ja hauptsächlich im Workbook_Open Ereignis untergebracht ist.

Schönen Abend, Andreas
 

Ibaas

Aktives Mitglied
Hallo Andreas,
Stimmt da ist er drin. Da habe ich nicht geschaut.

Nochmal recht herzlich Dank. Hast mir sehr geholfen.

Gruß Werner
 

Ibaas

Aktives Mitglied
PS: Ich habe die Datei bis auf die Eingabefenster gesperrt. Auch das Datum. Aber dann bekomme ich wieder einen Laufzeitfehler. Erst wenn ich die Zelle mit dem Datum wieder frei gebe funktioniert das Makro wie gewohnt. Weist du woran das liegt? Wenn nicht ist auch nicht schlimm. Ist mir halt aufgefallen.

Gruß Werner
 

nochEinAndreas

Stammgast
Ja, der Fehler kommt, weil der Makro versucht, in C4 das Datum einzutragen. Das geht bei gesperrten Zellen natürlich nicht. Aber du sagtest ja, du hättest sowieso eine andere Lösung für das Datum. Also nimm einfach die Zeile
Code:
Tabelle1.Range("C4") = Date
raus. Dann läuft der Makro wieder.

Grüße, Andreas
 
Oben