Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:C]) Is Nothing Or Target.Address <> ActiveCell.Address Then Exit Sub
Dim mem
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
mem = Target
Application.Undo
Cells(Rows.Count, Target.Column).End(xlUp)(2) = mem
Application.EnableEvents = True
End Sub