Ok alors remplace le code ci-dessus par celui-ci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim derlign As Long, cel As Range
derlign = [a65536].End(xlUp).Row
For Each cel In [a4:q4]
If IsError(cel) Then
If CVErr(xlErrDiv0) = cel Then cel.Resize(derlign - 4 + 1, 1).Value = "*" 'gestion des erreurs #DIV/0!
ElseIf cel < 10 Then
cel.Resize(derlign - 4 + 1, 1).NumberFormat = """*"""
Else
cel.NumberFormat = "General"
cel.Offset(1).Resize(derlign - 5 + 1, 1).NumberFormat = "0%"
End If
Next cel
End Sub
A noter donc que s'il y a une erreur #DIV/0!, toutes les valeurs de la colonne sera remplacée par des *.