You can use this formula:
=MROUND(A1,1)
Where A1 is the cell where you enter the data.
If you want this to happen automatically in the cell you're editing,
you will need a worksheet function like this (paste this in your
worksheet's code module):
Private Sub Worksheet_Change(ByVal Target As Range)
If (Len(Target.Value) And isNumber(Target.Value)) Then
Target.Value = _
Application.WorksheetFunction.MRound(Target.Value, 1)
Target.NumberFormat = _
"_($* #,##0.00_);_($* (#,##0.00);_($* " & _
Chr(34) & " - " & Chr(34) & "??_);_(@_)"
End If
End Sub
Private Function isNumber(num As Variant) As Boolean
Dim temp As Double
On Error Resume Next
temp = num - 1
On Error GoTo 0
isNumber = (Err.Number = 0)
Err.Clear
End Function
Additionally, you may want to define a named range in which you're
entering these figures, so that the event doesn't trigger for
something that's a number but not a budget amount (such as time). I
also put in an autoformat to display the number as currency, and to
ignore blank cells.