Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2:A1000")) Is Nothing Then Exit Sub
If Target <> "" And Cells(Target.Row, "B") = "" Then
ActiveSheet.Unprotect
Cells(Target.Row, "B") = Date
ActiveSheet.Protect
End If
End Sub