Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, a As Range
Set r = Intersect(Target, Range("A2:B" & Rows.Count), UsedRange)
If r Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
If FilterMode Then ShowAllData 'si la feuille est filtrée
For Each a In Intersect(r.EntireRow, [A:A]).Areas
a.Font.Name = "Calibri"
a.FormulaR1C1 = "=IF(ISNUMBER(RC[1]),IF(RC[1]=0,""0""&CHAR(160)&""a"",IF(RC[1]>0,""Dépassement"",""Manque"")),"""")"
a = a.Value 'supprime les formules
Next a
For Each r In r.EntireRow.Rows
If r.Cells(1) = 0 & Chr(160) & "a" Then r.Cells(1).Characters(3).Font.Name = "Marlett"
Next r
Application.EnableEvents = True 'réactive les évènements
End Sub