Problem mit SpecialCells-Methode ?!
19.07.2004 13:31:07
Ben
ich habe folgendes Problem:
In einem Arbeitsblatt stehen mehrere Funktionen. Die möchte ich vor Veränderung schützen. Ich mache dies mit folgendem Makro:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim formeln as Range ' Variable für den zu schützenden Bereich
Set formeln = Cells.SpecialCells(xlCellTypeFormulas)
' Deaktiviert alle Ereignisse für das Application-Objekt:
Application.EnableEvents = False
If Not Application.Intersect(Target, formeln) Is Nothing Then
Application.Undo
End If
Application.EnableEvents = True
End Sub
Doch dieses Makro verhindert nicht, daß vorhandene Funktionen geändert werden - es verhindert stattdessen, daß neue Funktionen in leere Zellen eingegeben werden können.
Das verstehe ich nicht!
Wenn ich nun die If-Bedingung im obigen VBA-Code ändere zu:
If Application.Intersect(Target, formeln) Is Nothing Then
(also das "Not" weglasse), dann können zwar die vorhandenen Funktionen nicht geändert werden - aber es können nun überhaupt keine Zellen mehr geändert werden (leere Zellen können auch nicht beschrieben werden).
Das verstehe ich erst recht nicht!
Für Hinweise, wie ich mit der SpecialCells-Methode bestimmte Zellen (z. B. solche mit Funktionen) vor Veränderung schützen kann, wäre ich Euch sehr dankbar!
Herzliche Grüße
Ben