AW: Schutz auf ausgefüllte Zellen
13.03.2009 16:08:45
monistaudt
Hallo Andre,
nein, leider hat Uwe's Lösung nicht funktioniert;
ich habe jetzt Deine Vorschläge ausprobiert und den Code mal hier mal dorthin verschoben aber auch das war nicht sonderlich erfolgreich;
Folgendes ist dabei rausgekommen
(1) Code in DieseArbeitsmappe
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim zelle As Range
Dim rngBereich As Range
Set rngBereich = Intersect(Target, Range("H:K,AG:AG"))
If Not rngBereich Is Nothing Then
ActiveSheet.Protect "dp09", UserInterFaceOnly:=True
For Each zelle In ActiveSheet.UsedRange
If zelle.Value "" Then
zelle.Locked = True
Else
zelle.Locked = False
End If
Next
End If
-> Fehlermeldung die locked-eigenschaft des range-objektes kann nicht festgelegt werden
(2) Code im Arbeitsblatt Mitarbeiterin
Private Sub Worksheet_Change(ByVal Target As Range)
Dim zelle As Range
Dim rngBereich As Range
Set rngBereich = Intersect(Target, Range("H:K,AG:AG"))
If Not rngBereich Is Nothing Then
ActiveSheet.Protect "dp09", UserInterFaceOnly:=True
For Each zelle In ActiveSheet.UsedRange
If zelle.Value "" Then
zelle.Locked = True
Else
zelle.Locked = False
End If
Next
End If
End Sub
-> Fehlermeldung die locked-eigenschaft des range-objektes kann nicht festgelegt werden
(3) Code im Formular Zeiterfassung
Private Sub Worksheet_Change(ByVal Target As Range)
Dim zelle As Range
Dim rngBereich As Range
Set rngBereich = Intersect(Target, Range("H:K,AG:AG"))
If Not rngBereich Is Nothing Then
ActiveSheet.Protect "dp09", UserInterFaceOnly:=True
For Each zelle In ActiveSheet.UsedRange
If zelle.Value "" Then
zelle.Locked = True
Else
zelle.Locked = False
End If
Next
End If
End Sub
-> kein Gemecker und Herumzicken aber auch keinerlei Eingabeschutz, alle beschriebenen Zellen wurden kommentarlos mit neuen Werten überschrieben;
(4) Code (verändert) im Formular Zeiterfassung
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim zelle As Range
Dim rngBereich As Range
Set rngBereich = Intersect(Target, Range("H:K,AG:AG"))
If Not rngBereich Is Nothing Then
ActiveSheet.Protect "dp09", UserInterFaceOnly:=True
For Each zelle In ActiveSheet.UsedRange
If zelle.Value "" Then
zelle.Locked = True
Else
zelle.Locked = False
End If
Next
End If
End Sub
-> wie bei (3) keinerlei Eingabeschutz, alle beschriebenen Zellen wurden kommentarlos mit neuen Werten überschrieben;
... hast Du vielleicht sonst noch eine Idee?
mfg monistaudt