Worksheet_Change vorübergehend deaktivieren
01.03.2006 17:11:18
torsten
- MEINE EXCELVERSION IST 2002 - SP2 -
Ich habe ein mittlerweile ziemlich umfangreiches Workbook, mit mehreren Sheets, CommandButtons, etc. erstellt. Z.Zt. lasse ich 2 meiner Sheets per "Worksheet_Change" überwachen, damit keine unerlaubten Änderungen vorgenommen werden können. Dazu habe ich im Rumpf von "Worksheet_Change" jeweils die entsprechendes Ranges angegeben und lasse sie entspr. überwachen.
Manchmal veranlasst der Benutzer jedoch völlig legitime Änderungen (einlesen von Daten, aus einer Quelle) in dem überwachten Sheet. Bei diesen Änderungen, die nicht von Hand geschehen, sondern per Quellcode, soll die Überwachung deaktiviert werden.
Z.Zt. realisiere ich dies mit einer globalen booleschen Variablen (deactShChange). Dabei setze ich sie zu Beginn des auszuführenden Codes auf True und am Ende eben wieder auf FALSE.
Es funktioniert zwar, aber was mich daran nervt, ist, dass jedesmal die Sub ausgeführt wird. Z.Zt. ist mein Workbook dadurch nicht langsamer, aber es nervt mich irgendwie trotzdem, obwohl der Rumpf bereits in der 2 Zeile abgebrochen wird. Als würde es nicht schon reichen, dass ich jeder "legitimen"-Prozedur ein setTrue und ein setFalse verpassen musste.
Frage:
Ist es möglich, statt der setTrue&False-Geschichte einfach ein
de-/activate_Worksheet_Change zu verwenden ?
Gruß