I'd do something like this
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rCell As Range
Dim vOldValue As Variant, vNewValue As Variant
Set rCell = Target.Cells(1, 1)
If Intersect(rCell, Range("C5:C14")) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Application.EnableEvents = False
With rCell
vNewValue = .Value
Application.Undo
vOldValue = .Value
.Value = vNewValue
If Len(vOldValue) > 0 Then
.Offset(0, 1).Value = vOldValue
Else
.Offset(0, 1).ClearContents
End If
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub