Voici 2 fonctions utilisables directement en tant que fonctions matricielles Excel (méthodologie appliquée d'après un article de Laurent Longre).
La première ESTFONDCOLORE teste si le fond des cellules est coloré et renvoie VRAI dans ce cas.
La seconde ESTTEXTECOLORE fait la même chose avec le texte : elle renvoie VRAI si le texte est différent de la couleur automatique
Dans ton cas, voici la formule que tu peux utiliser pour compter le nombre de cellules dans la ligne E1:E10, contenant le chiffre 1 écrit dans une couleur différente de la couleur automatique (formule matricielle à valider par Ctrl-Maj-Entree) :
=SOMME(SI(esttextecolore(E1:E10);1;0))
Function ESTFONDCOLORE(Plage As Range)
Dim Tableau
Dim Ligne As Integer, Col As Integer
If Plage.Cells.Count = 1 Then
Tableau = Plage.Interior.ColorIndex <> xlNone
Else
Tableau = Plage
For Ligne = 1 To UBound(Tableau, 1)
For Col = 1 To UBound(Tableau, 2)
Tableau(Ligne, Col) = _
Plage(Ligne, Col).Interior.ColorIndex <> xlNone
Next Col
Next Ligne
End If
ESTFONDCOLORE = Tableau
End Function
Function ESTTEXTECOLORE(Plage As Range)
Dim Tableau
Dim Ligne As Integer, Col As Integer
If Plage.Cells.Count = 1 Then
Tableau = Plage.Font.ColorIndex <> xlColorIndexAutomatic
Else
Tableau = Plage
For Ligne = 1 To UBound(Tableau, 1)
For Col = 1 To UBound(Tableau, 2)
Tableau(Ligne, Col) = _
Plage(Ligne, Col).Font.ColorIndex <> xlColorIndexAutomatic
Next Col
Next Ligne
End If
ESTTEXTECOLORE = Tableau
End Function