Schreibgeschützte Datei per vba umwandeln

Liebe Excelianer,

ich hatte vor gut 7 Monaten mein Problem schon mal geschildert und mir wurde große Hoffnung auf eine Lösung gemacht. Leider hoffe ich noch immer…:smile: Deshalb hier mein 2. Versuch.

Hintergrund: auf einem Server liegt die schreibgeschützte (read only) Excel-2003-Datei. Sie wird von vielen KollegInnen benutzt und per makro gespeichert. Das makro legt den Speicherpfad und den Dateinamen fest mit Datum und Uhrzeit. Der Dateiname ändert sich also nach jedem speichern. Ebenso befiehlt das makro, die Datei auch wieder schreibgeschützt zu schließen. Bis jetzt ist das alles gut (Danke an RakonDark für das makro).

In einem neuen Projekt sollen nun mehrere Benutzer gleichzeitig an dieser abgespeicherten, schreibgeschützten Datei arbeiten. Ich will dazu die „Arbeitsmappe freigeben“: Das geht aber nur, wenn die Datei nicht schreibgeschützt ist.

Ich frage nun, ob es möglich ist, per vba etwas zu basteln, dass mir mit einem Button-Klick den Schreibschutz aufhebt.

Ich hab schon probiert, das „vbReadonly“ in „vbNormal“ umzuwandeln. Aber das ergab nur einen Pseudoeffekt; „Arbeitsmappe freigeben“ bleibt weiterhin ausgegraut.
Was mir noch einfällt ist, die Datei per makro irgendwo anders abzuspeichern, dann wird ja der Schreibschutz aufgehoben. Dann müsste aber der Dateiname identisch sein und irgendwie müsste diese neue Datei an ihren alten Platz verschoben werden; aber da ist ja noch die alte Datei, die ersetzt oder gelöscht werden müsste, bevor die inzwischen nicht mehr schreibgeschützte Datei dort gespeichert werden kann. So von hinten durchs Knie denkt der Laie…
Aber vielleicht ist das ja ein Ansatz für die Experten.

Ich hoffe, ich habe es verständlich ausgedrückt.

Freundliche Grüße

Jorge

Grüezi Jorge

Hintergrund: auf einem Server liegt die schreibgeschützte
(read only) Excel-2003-Datei. Sie wird von vielen KollegInnen
benutzt und per makro gespeichert. Das makro legt den
Speicherpfad und den Dateinamen fest mit Datum und Uhrzeit.
Der Dateiname ändert sich also nach jedem speichern. Ebenso
befiehlt das makro, die Datei auch wieder schreibgeschützt zu
schließen. Bis jetzt ist das alles gut (Danke an RakonDark für
das makro).

Ich haben die damalige Diskussion nicht präsent - aber wie werden die einzelnen Dateien auseinander gehalten?
Wird einfach immer die mit dem jüngsten Zeitstempel geöffnet und dann neu abgespeichert?

In einem neuen Projekt sollen nun mehrere Benutzer
gleichzeitig an dieser abgespeicherten, schreibgeschützten
Datei arbeiten. Ich will dazu die „Arbeitsmappe freigeben“:
Das geht aber nur, wenn die Datei nicht schreibgeschützt ist.

Damit begibst Du dich in den Bereich von Datenbank-Anwendungen und solltest das tunlichst nicht mit Excel angehen, wenn dir deine Daten und die Anwendung sichtig sind…

Die Freigabe ist ein unstabiles Ding, das bisweilen auch zum Datenverlust führen kann.

Ich frage nun, ob es möglich ist, per vba etwas zu basteln,
dass mir mit einem Button-Klick den Schreibschutz aufhebt.

Lies dir bitte die Hinweise in der Online-Hilfe zur Freigabe einer Arbeitsmappe durch und beachte mit welchen Einschränkungen dies einhergeht.

Diese Einschränkungen kannst Du nicht umgehen - sie zeigen, dass Excel keine Mechanismen für die gleichzeitige Datenbearbeitung anbieten kann, wie das bei einer Datenbank zum Standard-Umfang gehört.

Was mir noch einfällt ist, die Datei per makro irgendwo anders
abzuspeichern, dann wird ja der Schreibschutz aufgehoben. Dann
müsste aber der Dateiname identisch sein und irgendwie müsste
diese neue Datei an ihren alten Platz verschoben werden; aber
da ist ja noch die alte Datei, die ersetzt oder gelöscht
werden müsste, bevor die inzwischen nicht mehr
schreibgeschützte Datei dort gespeichert werden kann. So von
hinten durchs Knie denkt der Laie…
Aber vielleicht ist das ja ein Ansatz für die Experten.

Was genau ist denn der tiefere Sinn des Ganzen?
Was soll mit dieser Art der Bearbeitung einer einzelnen Mappe erreiche werden?


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Salü Thomas,

Ich haben die damalige Diskussion nicht präsent - aber wie
werden die einzelnen Dateien auseinander gehalten?
Wird einfach immer die mit dem jüngsten Zeitstempel geöffnet
und dann neu abgespeichert?

Ja, ganz genau. Die älteren Versionen werden nach einiger Zeit gelöscht. Somit können wir durch diese Historie das Risiko von Datenverlusten (oder auch Dateiverlusten) ein bisserl minimieren.

In einem neuen Projekt sollen nun mehrere Benutzer
gleichzeitig an dieser abgespeicherten, schreibgeschützten
Datei arbeiten. Ich will dazu die „Arbeitsmappe freigeben“:
Das geht aber nur, wenn die Datei nicht schreibgeschützt ist.

Damit begibst Du dich in den Bereich von Datenbank-Anwendungen
und solltest das tunlichst nicht mit Excel angehen, wenn dir
deine Daten und die Anwendung sichtig sind…

Die Freigabe ist ein unstabiles Ding, das bisweilen auch zum
Datenverlust führen kann.

Ich habe mich natürlich im Forum informiert und kenne deinen warnenden Zeigefinger, der sich tief in mein Hirn gebrannt hat…Aber wie meine Mutter damals schon sagte: Versuch macht kluch.

Ich frage nun, ob es möglich ist, per vba etwas zu basteln,
dass mir mit einem Button-Klick den Schreibschutz aufhebt.

Lies dir bitte die Hinweise in der Online-Hilfe zur Freigabe
einer Arbeitsmappe durch und beachte mit welchen
Einschränkungen dies einhergeht.

Diese Einschränkungen kannst Du nicht umgehen - sie zeigen,
dass Excel keine Mechanismen für die gleichzeitige
Datenbearbeitung anbieten kann, wie das bei einer Datenbank
zum Standard-Umfang gehört.

Zum einen: ich benutze Excel in diesem Fall nicht zum rechnen; zum anderen: ich habs an einer Testdatei ausprobiert und da hatte ich keinerlei Probleme und zum dritten: wenns Probleme geben sollte, habe ich noch die älteren Versionen.

Was mir noch einfällt ist, die Datei per makro irgendwo anders
abzuspeichern, dann wird ja der Schreibschutz aufgehoben. Dann
müsste aber der Dateiname identisch sein und irgendwie müsste
diese neue Datei an ihren alten Platz verschoben werden; aber
da ist ja noch die alte Datei, die ersetzt oder gelöscht
werden müsste, bevor die inzwischen nicht mehr
schreibgeschützte Datei dort gespeichert werden kann. So von
hinten durchs Knie denkt der Laie…
Aber vielleicht ist das ja ein Ansatz für die Experten.

Was genau ist denn der tiefere Sinn des Ganzen?
Was soll mit dieser Art der Bearbeitung einer einzelnen Mappe
erreiche werden?

Bisher haben nur meine PflegekollgInnen diese Datei benutzt, um Patientendaten einzutragen, Pflegeplanungen zu erstellen und noch ein bisschen mehr. In diesem neuen Projekt soll es darum gehen, dass auf einer Station ausprobiert werden soll, wenn mehrere Berufsgruppen bei den üblichen Besprechungen gleichzeitig Daten eingeben. Allerdings in unterschiedliche Zellen bzw. Zellbereiche, je nach Berufsgruppe. Wir wollen Erfahrungen sammeln in Hinblick auf die Einführung eines Krankenhaus-Informations-Systems. Es soll, wenn denn möglich, so bleiben, dass die Datei grundsätzlich schreibgeschützt ist (siehe oben), nur für diese Besprechungen soll es die Möglichleit geben, sie zu „entschützen“, freizugeben und gleichzeitig zu bearbeiten.


Mit freundlichen Grüssen

und einem fröhlichen narri-narro

Jorge

Hallo Jorge,

schau mal in der Hilfe zu
UnprotectSharing-Methode
bzw.
ProtectSharing-Methode

Ansonsten, mit freigegebenen Mappen kenne ich mich nicht aus.

Gruß
Reinhard

Hallo Reinhard,

Ansonsten, mit freigegebenen Mappen kenne ich mich nicht aus.

Brauchst du doch auch gar nicht. Schreib mir doch ein schönes Makro, wie man die Datei irgendwo anders speichert, die Ursprungsdatei löscht und die neue Datei an den alten Ort verschiebt (Saveas und Movefile; mehr als diese Stichwörter kann ich dir nicht bieten). Nebenbei: du warst es damals, der mir Hoffnung gemacht hat…:smile:)

Guck mal hier ganz unten. Vielleicht inspiriert dich das. Bei mir funktioniert das nicht.
http://www.office-loesung.de/ftopic55846_0_0_asc.php

Ich hoffe, es ist erlaubt, so eine Anregung zu geben.

Gruß

Jorge