Public flag As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vali As Variant
If flag = True Then Exit Sub
flag = True
Application.ScreenUpdating = False
If Not Intersect(Target, Range("a3:a22")) Is Nothing And Target.Columns.Count = 1 Then
vali = Target.Value
Application.Undo
If vali <> Target.Value Then
Target.Offset(0, 1) = Date
Target.Value = vali
End If
End If
Application.ScreenUpdating = True
flag = False
End Sub