Compter dans les cellules de couleur.

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

  • COMPTE DANS COULEUR.xls
    17 KB · Affichages: 98

Manu62

XLDnaute Impliqué
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:

13GIBE59

XLDnaute Accro
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: 172
  • Couleurs excel.jpg
    Couleurs excel.jpg
    61.2 KB · Affichages: 204
  • Couleurs excel.jpg
    Couleurs excel.jpg
    61.2 KB · Affichages: 206

ROGER2327

XLDnaute Barbatruc
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
 

Discussions similaires

Réponses
16
Affichages
345

Statistiques des forums

Discussions
312 397
Messages
2 088 058
Membres
103 711
dernier inscrit
amin Saadaoui