online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon rheym vom 29.09.2022, 11:29 Options

Lösung

speichern verhindern

Hallo,

ich würde gerne verhindern, dass ein bestimmtes Arbeitsblatt in welcher auch immer gearteten Form abgespeichert werden kann (auch nicht als Kopie von). Ich habe ein Makro gefunden, dass dies auch verhindert und das sieht so aus:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Saved = True
ThisWorkbook.Close
End Sub


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
End Sub

funktioniert auch toll aber wenn ich noch andere Arbeitsblätter geöffnet habe, speichert er die auch nicht ab. Liegt das vielleicht am Befehl "ActiveWorkbook"? Kann ich das auf eine bestimmte Datei begrenzen?

vielen Dank

Richard


Antwort schreiben

Antwort 1 von Hajo_Zi vom 29.09.2022, 11:40 Options

Hallo Richard,

man könnte die aktuelle Tabelle abfragen, aber das speichern kannst Du nicht verhindern.
z.B. Tabelle1 soll nicht gespeichert werden. Es werden Änderungen vorgenommen und dann auf Tabelle2 gewechselt und gespeichert, damit auch Tabelle1.
Warum soll nicht gespeichert werden? Vielleicht reicht schon Schutz?

Gruß Hajo

Antwort 2 von rheym vom 29.09.2022, 11:57 Options

Hallo Hajo

sorry, ich habe immer Probleme mit den Definitionen. Ich meinte natürlich eine ganze Arbeitsmappe, die als Datei.xls gespeichert wird.
Ich hab die Eingaben von den Auswertungen getrennt. Das heisst, man kann in einer Arbeitsmappe alle erforderlichen Daten eingeben und abspeichern. Dann öffnet man eine Auswertungsdatei, die mit der Eingabedatei verknüpft wird und kann unterschiedliche Auswertungen durchführen. Die Auswertungsdatei soll aber weder gespeichert werden (das ginge mit Schreibschutz), noch sollen andere Benutzer eine Kopie abspeichern können, was sie aber andauernd tun, weil sie Angst haben, Daten zu verlieren. Dann ist mein ganzer Ordner mit "Kopie von... usw vollgemüllt und ich muss ständig aufräumen. Deshalb wollte ich das Abspeichern in der Auswertungsdatei verhindern, aber eben nur dort.

viele Grüße

Richard

Antwort 3 von Hajo_Zi vom 29.09.2022, 12:21 Options

Hallo Richard,

Dein geposteter Code macht das doch?

ich hätte nur noch false ergänzt
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Saved = True
ThisWorkbook.Close false
End Sub

Gruß Hajo

Antwort 4 von malSchauen vom 29.09.2022, 12:43 OptionsLösung

Lösung
Hi,

Nur mal so zwischengefragt, ohne entsprechende Auswirkungen getestet zu haben: Wo steht dieser Code? Doch nicht etwa in der Personal.xls? Wenn Ja, dann gehört er dort sicher nicht hin.

Der Code gehört ins Project "Diese Arbeitsmappe" von eben der Datei, welche Du "schützen" möchtest, und würde bei mir nach einem kurzen Test aussehen wie folgt:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("Mappe wird nicht gespeichert!" & vbCrLf & _
            "Mappe dennoch schliessen?", vbYesNo, "Rückfrage") _
            = vbNo Then Cancel = True
        
ThisWorkbook.Saved = True
'ThisWorkbook.Close     'überflüssig, da das Schliessen der Mappe schon läuft
End Sub


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "Speichern nicht moeglich"
Cancel = True
End Sub


Wie zu sehen, würde ich als Anwender dabei gern benachrichtigt werden, gerade beim "BeforeSave". Das wird Dir als Entwickler auch helfen... Nicht, dass Du die Mappe ein, zwei Stunden weiterentwickelst, brav auf Speichern klickst (mit ausgeschaltetem Entwurfsmodus), und beim nächsten Öffnen stehst Du wieder am Anfang. ;-)
btw: Kopien auf Dateiebene (z.B. im Explorer) wirst Du aber so nicht verhindern können.

bye
malSchauen

Antwort 5 von rheym vom 29.09.2022, 13:11 Options

Hallo Malschauen, Hallo Hajo,

das Problemmit dem ersten Makro war, dass wenn mehrere Arbeitsblätter offen waren nichts gespeichert wurde, ausserdem hat sich excel plötzlich andauernd aufgehängt.
das Makro von malschauen hat funktioniert. Ich habs in "diese Arbeitsmappe" gelegt unter "BeforeClose"

Tausend Dank!

Richard

Ähnliche Themen

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026