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!