Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .CountLarge > 1 Then Exit Sub
If Intersect(Target, [B2:D20]) Is Nothing Then Exit Sub
Dim vx#: Application.EnableEvents = 0
vx = Val(Replace$(.Value, ",", "."))
If vx = 0 Then .Value = Empty: GoTo 1
.Value = WorksheetFunction.RoundUp(vx, 0)
[F4] = [F4] + Round(.Value - vx, 2)
1 Application.EnableEvents = -1
End With
End Sub