Sub CalculerNoteArrondie()
Dim msg$, chn$, note!, noteEntiere%, ecart!, noteArrondie!, k!
'Saisie de la note initiale
Do
msg = "Saisir une note comprise entre 0 et 20." & vbLf & vbLf _
& "Cette note peut être un nombre fractionnaire ;" & vbLf _
& "pour la virgule, vous pouvez saisir « , » ou « . »" & vbLf
chn = InputBox(msg): note = Val(Replace$(chn, ",", "."))
Loop Until note >= 0 And note <= 20
'Récupération de la partie entière de la note
noteEntiere = Int(note)
'Détermination de la note arrondie
ecart = note - noteEntiere
If ecart <> 0 Then If ecart > 0.5 Then k = 1 Else k = 0.5
noteArrondie = noteEntiere + k
chn = IIf(noteArrondie = note, "reste", "devient")
MsgBox "La note était " & note & " ; elle " _
& chn & " " & noteArrondie
End Sub