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