Hallo Hollie,
wow, danke... wir sind fast am Ziel und sorry, dass ich Dich hier so nerve
Wie ich das Datum in die Zelle "Q" (nicht "K") zaubere, siehst Du im Code weiter unten. Es geht über "Worksheet Calculate()".
Habe es eben erneut versucht und es lief wie folgt:
- nachdem der Pers.Chef in Spalte "O" sein Kennwort eingetragen hat, erscheint in Spalte "P" = "genehmigt" und in Spalte "Q" das Tagesdatum
- weiterhin wird die komplette Zeile ausgegraut (A-E und G-K)
- die Message-Box erscheint und man kann sie mit einem Klick auf "OK" schließen
ABER...
- die Zeile wird nicht gesperrt
- die Datei wird nicht automatisch gespeichert
INFO:
Nach einer manuellen Speicherung ist die Zelle dann gesperrt.
Hier nun nochmal alle aktuellen Codes im Überblick:
1) Code "Dieses Arbeitsblatt":
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim objCell As Range
Dim loZ As Long
With Worksheets("Eingaben")
For Each objCell In .Range("Q9:Q20")
If IsDate(objCell.Value) Then
loZ = objCell.Row
objCell.EntireRow.Locked = True
objCell.Interior.Color = RGB(221, 221, 221)
.Range(.Cells(loZ, 1), .Cells(loZ, 5)).Interior.Color = RGB( _
221, 221, 221)
.Range(.Cells(loZ, 7), .Cells(loZ, 11)).Interior.Color = RGB( _
221, 221, 221)
End If
Next
End With
End Sub
Private Sub Workbook_Open()
Call Worksheets("Eingaben").Protect(Password:="xxxxxxxx", _
UserInterfaceOnly:=True)
End Sub 2) Code "Eingaben":
Private Sub Worksheet_Calculate()
Dim objCell As Range
For Each objCell In Range("O9:O20")
With objCell
If .Text = "OK" Then _
If Not IsDate(.Offset(0, 2).Value) Then .Offset(0, 2).Value = _
Date
End With
Next
End Sub
'tritt auf, wenn die Zelle mit geändertem Inhalt verlassen oder mit "Entf"
' geändert wird.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 17 Then '=Spalte "Q"
Select Case Target.Row
Case 9 To 20 'Zeilen 9...20
If ActiveSheet.Cells(Target.Row, 17) = Date Then
ActiveSheet.Protect(Password:="xxxxxxxx", UserInterfaceOnly:=True) = _
True
ThisWorkbook.Save
MsgBox "Dieser Urlaub ist jetzt nicht mehr veränderbar!", 64
End If
End Select
End If
End Sub Vielleicht ist es ja nur noch eine Kleinigkeit
Danke & Grüße von
imebro |