SOMME_SI_COULEUR Mise en forme conditionnelle

Bonjour,

J'ai trouvé sur ce forum une fonction VBA permettant de sommer les valeurs d'une plage donnée en fonction de leur couleur (fond). Le code de celle-ci est le suivant :

Function SOMME_SI_COULEUR(PlageSomme As Range, PlageCouleur As Range) As Variant
'*********************************************************
' Effectuer la somme des cellules en couleur *
'*********************************************************
Dim Cel As Range
Dim Som As Double

If PlageCouleur.Cells.Count > 1 Then
SOMME_SI_COULEUR = CVErr(xlErrValue)
Exit Function
End If
For Each Cel In PlageSomme
If Cel.Interior.ColorIndex = PlageCouleur.Interior.ColorIndex Then Som = Som + Cel
Next
SOMME_SI_COULEUR = Som
End Function

Cette fonction est très intéressante. Toutefois, j'ai constaté que celle-ci ne marchait pas si la couleur de la case était issue d'une mise en forme conditionnelle.

Quelqu'un aurait il la possibilité d'améliorer le code de la fonction pour que celle-ci marche à la fois en mise en forme conditionnelle ou en changement de couleur "normal"?

Pour plus de compréhension de la fonction, ci-joint :

  • la fonction dans un exemple qui marche (fichier "test")
  • la fonction avec une mise en forme conditionnelle (qui donc ne marche pas) (fichier "erreur_mise_en_forme_conditionnelle")

Merci par avance!

27test.xlsm (15.71 Ko)

Bonjour,

quand c'est issue d'une MFC on peut le faire tout simplement par formule :

=SOMME.SI(F6:F12;">4")

@ + +

c'est pas faux... j'étais tellement focalisé sur ma couleur de plage que je n'y ai pas pensé

Rechercher des sujets similaires à "somme couleur mise forme conditionnelle"