AW: Bestimmte Zellen nach Eingabe sperren
03.06.2014 15:28:31
Philipp
Die Fehler hören leider nicht auf. Nun heißt der Excel-Fehler:
"Mehrfachselektion im aktuellen Gültigkeitsbereich"
Ich habe alles so geändert wie du gesagt hast. Vielen Dank für deine zahlreichen Tipps. Du bist mir bisher eine große Hilfe.
Gruß Philipp
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RaBereich As Range ' Variable für Bereich
Dim RaZelle As Range ' Variable für Zelle
Set RaBereich = Columns(22) ' Bereich der Wirksamkeit
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If Not RaBereich Is Nothing Then
ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In RaBereich
With RaZelle
Range(Cells(RaZelle.Row, 17), Cells(RaZelle.Row, 22)).Locked = True
End With
Next RaZelle
ActiveSheet.Protect ("Passwort")
End If
Set RaBereich = Nothing ' Variable leeren
Dim RaBereich As Range ' Variable fü überwachten Bereich
Dim RaZelle As Range ' Variable für Zelle die zur Zeit _
bearbeitet wird
Set RaBereich = Range("Q5:Q11, Q14:Q21, Q24:Q36, Q50:Q56, Q59:Q66, Q69:Q81, Q95:Q101, Q104: _
Q111, Q114:Q126") ' Bereich der Wirksamkeit
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If Not RaBereich Is Nothing Then
Application.EnableEvents = False ' Reaktion auf Eingabe abschalten
Application.ScreenUpdating = False ' Bildschirm abschalten
For Each RaZelle In RaBereich ' Schleife über alle veränderten Zellen im ü _
berwachten Bereich
If RaZelle = "" Then
RaZelle.Offset(0, 4).ClearContents ' Zellinhalt löschen
ElseIf RaZelle.Offset(0, 4) = "" Then
RaZelle.Offset(0, 4) = Now() ' Datum eintragen, nur bei ersten Eintrag
End If
Next RaZelle
Application.ScreenUpdating = True ' Bildschirm einschalten
Application.EnableEvents = True ' Reaktion auf Eingabe einschalten
End If
Set RaBereich = Nothing ' Variable leeren
End Sub