AW: Benutzerdefinierte Fehlermeldungen + Excel
02.10.2003 18:02:18
Matthias G
Hallo Daniel,
die Blattschutz-Meldung kannst Du nicht unterdrücken, es sei denn, Du verzichtest auf den Blattschutz und fängst Änderungen mit dem Change-Ereignis ab:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
MsgBox "Änderungen nicht möglich! F6 drücken!"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End Sub
Alle Änderungen über Makro (z.B. mit deiner F6-Taste) müssten dann mit Application.EnableEvents = False eingeleitet und mit Application.EnableEvents = True abgeschlossen werden.
Der Verzicht auf den Blattschutz hat aber einige Nachteile, die Du nur mit einigem Aufwand abwenden kannst:
Änderung der Zellhöhe/Spaltenbreite, unerwünschtem Formatieren von Text, Manuellem Abschalten der Events (im Direktfenster "Application.EnableEvents = False" eingeben und dein Schutz ist weg),...
Es kommt darauf an, wie sicher das Ganze sein soll.
Grundsätzlich geht das mit der Gültigkeitsabfrage im Change-Ereignis aber meiner Ansicht nach recht komfortabel: Du kannst Änderungen je nach Benutzer oder anderer Parameter zulassen, korrigieren oder unterdrücken, ganz nach belieben.
Wichtig ist noch, vor dem Speichern den Blattschutz zu setzen, und mit der Workbook_Open-Prozedur wieder zu entfernen, so kann ein Benutzer, der die Makros deaktiviert hat, keine Veränderungen vornehmen.
Ich habe einen ganzes Dienstplanprogramm geschrieben und auf den Blattschutz verzichtet, das funktioniert recht gut. Und jede falsche/unerlaubte Eingabe bekommt seine eigene Fehlermeldung.
Viele Grüße,
Matthias