Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Schreibgaschützt





Frage

Hallo, 1) ich möchte, dass eine Schreibgeschützte Excel-Datei (also die Arbeitsmappe wird im Explorer als Datei in Eigenschaften mit Schreibgeschützt-Hacken versehen) beim Öffnen automatisch abgespeichert wird als eine neue Datei mit anderem Namen, den man eingeben muss. Danach arbeitet man mit dieser neuen Mappe, die nicht mehr Schreibgeschützt ist, und die primäre oder Muster-Mappe bleibt immer erhalten. 2) es wäre auch nicht schlecht, wenn nach dem Arbeiten und beim Schließen der neuen Mappe, diese automatisch (mit/ohne automatischem/gleichzeitigem Abspeichern) auch mit Schreibgeschützt-Hacken versehen worden wäre, ohne dafür im Explorer in den ganzen Überverzeichnissen durchwüllen zu müssen. Hilft mir bitte! MfG RIDDIK

Antwort 1 von Springmaus

Es ist halt jammerschade, dass du nicht schreibst welche Version Du hast.

Früher musstest Du eine Autoexec schreiben, die wurde automatisch beim Start abgearbeitet, aber ab Excel 2000 geht es anders. Keine Ahnung nun, was Du für eine Version hast.

Vielleicht hilft Dir das, wenn Du Excel > 97 hast:
<Zitat>
benutze das Ereignis-Makro Workbook_Open!
Wechsle in die VBA-Umgebung, öffne den Projekt-Explorer mit Strg+R und
doppelklicke das Modul ´DieseArbeitsmappe´.
Im Kopfbereich befinden sich zwei Listenfelder. Wähle das linke und
klicke auf Workbook. Im rechte Listenfeld kannst du auch andre
Ereignisse auswählen.
Zwischen den Prozedurrumpf trägst du deine Anweisungen ein, die beim
Öffnen der Arbeitsmappe ausgeführt werden sollen.
</Zitat>

So, dann schreibst Du also dort nur hinein, dass die Datei unter anderem Namen gespeichert und die alte Datei geschlossen werden soll.

zu 2) zuerst speichern dann schreibschutz setzen vor dem Schließen.
SetAttr "dateiname.xls", vbReadOnly ´setzt Schreibschutz

Antwort 2 von RIDDIK

Moin Springmaus,

ich habe Excel2000. Das mit Workbook_Open habe ich schon gewusst, ich weiss nur nicht, was ich darein schreiben soll.

Ich denke(ich weiss nicht, ob es sein soll), (1) diese schreibgeschützte Primärdatei zuerst "schreibfrei" gemacht werden soll. Dann möchte ich, (2) dass diese Datei unter anderem Namen, den ein bel. Benutzer eingeben kann, nochmal gespeichert wird.

An dieser Stelle sehe ich ein besonderes Problem: wenn diese Primärdatei, die zum Zeitpunkt vor dem Speichern nicht mehr schreibgeschützt ist, wird beim "Speichern unter" automatisch geschlossen. Also wird nicht mehr schreibgeschützt abgelegt. Dann muss ich trotzdem in meine Ordner reingehen müssen, um sie wieder schreibgeschützt machen. Oder sehe ich das falsch?

Und welchen Dateinamen soll ich in SetAttr "dateiname.xls", vbReadOnly einsetzen, wenn ich jetzt noch gar nicht weiss, welchen Namen der freie Benutzer der Mappe verpasst?

Also es soll folgendermaßen aussehen:
Ich als freier Benutzer starte Excel und öffne diese Primärdatei. Wenn sie offen ist (oder vielleicht kurz davor) erscheint ein Fenster, in welchem ich zum speichern der Datei unter anderem Namen aufgefordert bin und diesen anderen Namen eingeben soll(kurz:"Speichern unter"-Dialogfenster).
Dann gebe ich einen beliebigen Namen ein und klicke aufs "Speichern", führe versch. operationen aus und schließe die Mappe (und vielleich auch Excel).
An dieser stelle soll mein Ordner zwei schreibgeschützte Dateien enthalten: Primärdatei und z.B. Primärdatei1.

Ist es machbar? Und wie?

Übrigens, Danke für die Rückmeldung.

Gruß
RIDDIK

Antwort 3 von RIDDIK

Hallo,

Ich denke, dass beim Öffnen der Datei (Workbook_Open) ein Makro gestartet werden soll, das das "Schreibgeschützt" aufhebt und das "Speichern unter" ausführt.

Dann soll beim Schließen der Arbeitsmappe (Workbook_BeforeClose) "schreibgeschützt werden. Dafür muss allerdings zuerst über eine Funktion(Vorschlag: über Variable und Parameter mit ByVal oder ByRef) der aktueller MappenName eingelesen(Vorschlag: Workbook.Path) und dann in SetAttr "dateiname.xls", vbReadOnly/Write.

Meine Vorschläge sollen Euch kein Eindruck verleihen, dass ich mich in diesem Gebiet auskenne. Die ganzen Begriffe habe ich aus der Programmhilfe und schätze die passen einiger Maßen zu dem Thema.

Wenn jemand für mich (und damit auch für alle) die fertigen Codes bereitstellen könnte, wäre ich (und wahrscheinlich auch andere) sehr dankbar.

MfG
Iwan

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Suche in allen vorhandenen Beiträgen: