Compter dans les cellules de couleur.

  • Initiateur de la discussion Initiateur de la discussion Manu62
  • 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 !

Manu62

XLDnaute Impliqué
Bonjour

Je recherche une formule qui permet de faire la somme de toutes les cellules de même couleur.

Cf petit fichier exemple, avec le résultat attendu.

merci de votre aide

Manu
 

Pièces jointes

Re : Compter dans les cellules de couleur.

Bonjour

Oui j'ai vu mais pas trouvez avec somme...

Comment puis je mettre la function somme de ce type de code..




Function CompteCouleurFond(champ As Range, couleurFond)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleurFond Then
temp = temp + 1
End If
Next c
CompteCouleurFond = temp
End Function



merci de votre retour

Manu
 
Dernière édition:
Re : Compter dans les cellules de couleur.

Bonjour Manu, bonjour cc

Essaie ça :

Function SommeRouge(Plage As Range)
For Each cell In Plage
If cell.Interior.ColorIndex = 3 Then vSomme = vSomme + cell.Value
Next
SommeRouge = vSomme
End Function

Les codes couleurs en pièce jointe.
 

Pièces jointes

  • Couleurs excel.jpg
    Couleurs excel.jpg
    61.2 KB · Affichages: 174
  • Couleurs excel.jpg
    Couleurs excel.jpg
    61.2 KB · Affichages: 206
  • Couleurs excel.jpg
    Couleurs excel.jpg
    61.2 KB · Affichages: 207
Re : Compter dans les cellules de couleur.

Bonjour à tous
Une autre proposition (à placer dans un module standard) :
VB:
Function sommecouleur(r)
  Application.Volatile
  sommecouleur = toto(r.Address, Application.Caller.Address)
End Function

Function toto(rg1$, rg2$)
Dim c&, i&, oCl(), oDat(), oPlg As Range, oCel As Range
  Set oPlg = Range(rg2)
  ReDim oCl(1 To oPlg.Count)
  For i = 1 To oPlg.Count
    oCl(i) = oPlg(i).Interior.ColorIndex
  Next
  ReDim oDat(1 To UBound(oCl), 1 To 1)
  For Each oCel In Range(rg1).Cells
    c = oCel.Interior.ColorIndex
    For i = 1 To UBound(oCl)
      If c = oCl(i) Then
        oDat(i, 1) = oDat(i, 1) + oCel.Value
        Exit For
      End If
    Next
  Next
  toto = oDat
End Function
Placer
Code:
=sommecouleur($A$1:$C$6)
en J1 et recopier vers le bas.​
ROGER2327
#5224


Vendredi 20 Palotin 138 (Saint Ti Belot, séide, SQ)
20 Floréal An CCXIX
2011-W19-1T13:56:00Z
 
- 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
131
Réponses
7
Affichages
116
Réponses
14
Affichages
247
Réponses
19
Affichages
899
Retour