Microsoft Excel

Herbers Excel/VBA-Archiv

Zellschutz Meldung unterdrücken

Betrifft: Zellschutz Meldung unterdrücken von: Andreas
Geschrieben am: 12.08.2004 13:44:04

Hi Excelgurus,

hane mal eine Frage kann man per Makro die Meldund unterdrücken das ein Schutz auf einer Zelle besteht ??? Wäre ech eine tolle sache wenn man diese Meldung unterdrücken kann.
Vielen Dank im Vorraus für Eure hilfe

Andreas

  


Betrifft: AW: Zellschutz Meldung unterdrücken von: Ulf
Geschrieben am: 12.08.2004 13:58:42

Das geht so nicht, du kannst aber über EnableSelection festlegen, dass geschützte Zellen gar nicht erst ausgewählt werden können.

Ulf


  


Betrifft: AW: Zellschutz Meldung unterdrücken von: Andreas
Geschrieben am: 12.08.2004 14:02:20

Hi Ulf
das bringt mir leider nicht viel da ich geschützte Zellen makieren muß !!!

Gruß Andreas


  


Betrifft: AW: Zellschutz Meldung unterdrücken von: Ulf
Geschrieben am: 12.08.2004 14:07:16

Na ja, jedenfalls lässt sich Excel das nicht nehmen zu meckern, wenn du versuchst, geschützte Zellen zu ändern.

Ulf


  


Betrifft: Danke, kann man nichts machen o.T von: Andreas
Geschrieben am: 12.08.2004 14:10:53

o.T


  


Betrifft: Zellschutz Meldung unterdrücken - durch Undo von: Beate Schmitz
Geschrieben am: 12.08.2004 22:17:28

Hallo Andreas,

eine etwas schrille Idee: setze ein Undo-Makro ein. D.h. jedwede Änderung wird einfach nicht ausgeführt, es erfolgt aber auch keine Meldung, das Blatt braucht nicht geschützt zu werden. Hier mal ein paar Beispiele für Zellen bzw. Bereiche, dann kann du mal testen, ob das eine Lösung für dich ist. Das Makro gehört ins Codefenster der Tabelle:

Diese Lösung ruft nach jeder Änderung des Blattes die Undo - Funktion auf. Damit wird die Änderung rückgängig gemacht. Dies funktioniert natürlich nur bei aktivierten Makros.


Private Sub Worksheet_Change( ByVal Target As Excel.Range)
    Application.EnableEvents = False
    Application.Undo
    Application.EnableEvents = True
End Sub


Quelle mit Dankeschön: http://www.Russi.de.tt

Eine Erweiterung könnte man machen, indem man über If nur einzelne Zellen/Spalten/Zeilen/Bereiche so schützt - und somit ist dies auch eine gute Möglichkeit mehrere Bereiche in einem Blatt zu schützen ohne Blattschutz zu aktivieren.

Beispiel für Schutz von Zelle H5:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$H$5" Then
    Application.EnableEvents = False
    Application.Undo
    Application.EnableEvents = True
End If
End Sub


Beispiel für Schutz von Bereich A1:D10:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column <= 4 And Target.Row <= 10 Then
    Application.EnableEvents = False
    Application.Undo
    Application.EnableEvents = True

Beispiel für Schutz von Spalte C:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  If Target.Column = 3 Then
    Application.EnableEvents = False
    Application.Undo
    Application.EnableEvents = True
End If
End Sub


Beispiel Zellschutz mit Undo für A1 - wenn man aber in B1 eine 1 eingibt, können dort Änderungen vorgenommen werden:
setze folgendes Makro ins Codefenster der Tabelle (dabei liegt das zu schützende Gültigkeitsdropdown in Zelle A1 - anpassen!):

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$A$1" Then
If Range("B1").Value <> 1 Then
    Application.EnableEvents = False
    Application.Undo
    Application.EnableEvents = True
End If
End If
End Sub


Blattschutz braucht nicht gesetzt zu werden, dieses Makro stellt nach dem Versuch, die Auswahl in A1 zu ändern, den vorherigen Zustand wieder her.
Will man die Zelle A1 bewußt ändern, muss man in B1 eine 1 eingeben. Für diesen Zweck kann man ja auch eine "verstecktere" Zelle vorsehen.

Gruß,
Beate


 

Beiträge aus den Excel-Beispielen zum Thema "Zellschutz Meldung unterdrücken"