XL 2019 Addition selon couleur vba

  • Initiateur de la discussion Initiateur de la discussion FRANCK823
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

FRANCK823

XLDnaute Nouveau
Bonjour a tous

Je recherche une vba qui me permettrais d'additionner les chiffres de differentes cellules en fonction de la couleur de la dite cellule

Il y a en effet un complément excel qui peut le permettre (somme_si_couleur) , mais je préféré largement une vba

Merci de votre attention
 
Re
Si les couleurs sont mises de façon manuelle alors en PJ un essai avec :
VB:
Function SommeParCouleur(Plage, Cellule)
    Couleur = Range(Cellule.Address).Interior.Color
    For Each C In Plage
        If Range(C.Address).Interior.Color = Couleur Then SommeParCouleur = SommeParCouleur + C.Value
    Next C
End Function
La syntaxe est : =SommeParCouleur(Plage,Cellule référence de couleur )
 

Pièces jointes

Bonsoir FRANCK823, sylvanu,

Pour pouvoir travailler sur les couleurs réelles ou les couleurs des MFC il faut utiliser DisplayFormat.

Mais attention, dans une fonction VBA il faut passer par Evaluate :
VB:
Function SommeSICouleur(Plage As Range, Cellule As Range)
Application.Volatile
Dim coul As Long, c As Range
coul = Evaluate("ValeurCouleur(" & Cellule.Address() & ")")
For Each c In Plage
    If IsNumeric(c) Then If Evaluate("ValeurCouleur(" & c.Address() & ")") = coul _
        Then SommeSICouleur = SommeSICouleur + CDbl(c)
Next
End Function

Private Function ValeurCouleur(R As Range) As Long
ValeurCouleur = R.DisplayFormat.Interior.Color
End Function
A+
 

Pièces jointes

Re
Si les couleurs sont mises de façon manuelle alors en PJ un essai avec :
VB:
Function SommeParCouleur(Plage, Cellule)
    Couleur = Range(Cellule.Address).Interior.Color
    For Each C In Plage
        If Range(C.Address).Interior.Color = Couleur Then SommeParCouleur = SommeParCouleur + C.Value
    Next C
End Function
La syntaxe est : =SommeParCouleur(Plage,Cellule référence de couleur )
Ouah super rapide et explicite tout à fait le sujet se je recherchais
Merci beaucoup
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
247
Réponses
34
Affichages
2 K
Retour