Private Sub Worksheet_Change(ByVal Target As Range)
Dim old, arr
If Target.Count > 1 Then Exit Sub
If Target.Address <> "$E$4" Or Target.Value <> "" Then Exit Sub
Application.Undo
old = Target.Value
arr = [E5:E14]: [E4:E13] = arr
[E14] = old
End Sub