Frage : Worksheet_Change

Ich habe ein Arbeitsblatt, das eine genannte Strecke in es benannte „Col_M“ hat.  Es ist auf einem geöffneten entriegelten, ungeschützten Blatt.  Die Zellen in der Strecke „Col_M“ haben Formeln in ihnen und ich möchte den WorkSheet_Change Prozess, um die Änderung der Zellen in der Strecke verwenden, anstelle vom Blatt zu verhindern schütze, Verschluss entriegele…. (lange Geschichte) aber ich muss etwas dort verwenden anderes dann der Standardblattschutz method.

Is eine Weise, WorkSheet_Change zum montior zu verwenden diese Strecke und wenn ein Benutzer trys, um einen Zellenwert in dieser Strecke zu ändern, um sie zu stoppen, kein chg erlaubt zu alarmieren und die Änderung zu verhindern?

Col_M ist Dynamikwerte, also addiert Reihen und ständig gelöscht und er sollte nicht ausmachen, dass Reihen addiert oder weggenommen.  Dieser Prozess sollte nicht Sorgfalt von Reihen hinzugefügt oder gelöscht aus Col_M, und er sollte den zulassen, gerade keine Zelle redigiert für die Zellen im Col_M range.

Can, das dieses sogar getan?  Bitte raten und Dank. - R-

Antwort : Worksheet_Change

Hallo R,

dieses sollte sogar besseres bearbeiten: in der vorhergehenden Version könnte der Benutzer mehr als eine Zelle vorwählen und die Formeln löschen. Die Version, die jetzt erlaubt angebracht wird nur, die Einfügung oder die Auslassung der *complete* Reihen oder der Spalten. Weitere ganze Zellenhandhabung auf der Strecke „col_M“ wird nicht erlaubt.

Beifall, teylyn
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
Privates VorWorksheet_Change (ByVal Ziel als Strecke)
Wenn nicht schneiden (Ziel, Strecke („col_M“)) Ist nichts dann
    Application.EnableEvents = falsch
    Wenn Target.Rows.Count = Strecke („A1“, Zellen (Rows.Count, „A“)). Rows.Count dann
        Application.EnableEvents = richten aus
        Unterseeboot herausnehmen
    Beenden wenn
    Wenn Target.Columns.Count = Strecke („A1“, Zellen (1, Columns.Count)). Columns.Count dann
        Application.EnableEvents = richten aus
        Unterseeboot herausnehmen
    Beenden wenn
    Application.Undo
    MsgBox „, das Sie vollständige Spalten oder Reihen nur einsetzen oder löschen können, nicht Änderungszellen.“
    Application.EnableEvents = richten aus
Beenden wenn
Unterseeboot beenden
Weitere Lösungen  
 
programming4us programming4us