Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [D5:D16]) Is Nothing Or Target.Count > 1 Then Exit Sub
If Target(1, 0) = "" Then Exit Sub
Dim v
v = Val([D1]) - Application.Sum([D5:D16])
If Target = "" And v > 0 Then Target = v
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [D5:D16]) Is Nothing Or Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
Dim v
v = Val([D1]) - Application.Sum([D5:D16])
If Target(1, 0) = "" Then Target = "" Else _
If Val(Target) <= 0 Or v < 0 Then Target = "": Target.Select
End Sub