Private Sub Worksheet_Change(ByVal Target As Range)
Dim a, r As Range
a = Array("truc1", "truc2", "truc3", "truc4", "truc5", "truc6", _
"truc7", "truc8", "truc9", "truc10", "truc11", "truc12", _
"truc13", "truc14", "truc15", "truc16", "truc17", "truc18", _
"truc19", "truc20")
Set r = Intersect(Target, Me.UsedRange)
If Not r Is Nothing Then
For Each r In r
r.NumberFormat = "General"
If IsNumeric(r) Then If r = Int(r) And r And r < 21 Then _
r.NumberFormat = """" & a(r - 1) & """"
Next
End If
End Sub