Somme en fonction d'une couleur

Neileru4

XLDnaute Occasionnel
Bonjour a tous
je cherche a faire un calcul (somme) en fonction d'une couleur
c'est a dire que dans mon tableau j'ai des produit livré le matin ou le soir
je voudrai vert le calcul des produit en bleu
en prenant en compte le nombre dans cette cellule
 

Pièces jointes

  • Classeur.xlsx
    9.3 KB · Affichages: 80

Lone-wolf

XLDnaute Barbatruc
Re,

Je viens de faire un test en ajoutant le bleu sur une cellule et le résultat change.
Pour la 2ème question, j'avoue que la fonction n'est pas de moi et donc difficile de t'expliquer.
 

Pièces jointes

  • Copie de Classeur-2.xlsm
    14.7 KB · Affichages: 31

gosselien

XLDnaute Barbatruc
et peux tu expliquer ou savoir comment tu as fait?
merci j'aimerais bien essayer de comprendre ton raisonnement
Bonjour,
pour les cellules sélectionnées (une plage de cellules) , si la couleur de fond de la cellule est la même que la couleur de référence, alors il fait la somme
Les couleurs de référence étant et G et I dans l'exemple mais la couleur de référence pourrait être celle où se trouve la formule aussi :)
P.
 

Lone-wolf

XLDnaute Barbatruc
Re

Pas besoin de modification, tu as bien vu dans le classeur 2 qu'il y a 2 couleurs. Pour Test, tu rajoute le rouge par exemple en K31; en C35 tu copie et colle la formule en mettant

=SOMME_SI_COULEUR(C10:E29;K31)

Quand tu enlève la ou les couleurs dans la plage de cellule ou si tu change une couleur(ex.: bleu par jaune), tu sélectionne la cellule du résultat, clique dans la barre de formule puis sur V.
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re,

Dans ce cas il faut une autre fonction, en voici une à ajouter dans le module

VB:
Function NbColor(ByRef Plage As Range, Couleur As Byte) As Long
    Dim c As Range
    Dim nb As Long
    nb = 0
    For Each c In Plage
        If c.Interior.ColorIndex = Couleur Then
            nb = nb + 1
        End If
    Next c
    NbColor = nb
End Function

Function NbColorSameAs(ByRef Plage As Range, ByRef Cellule As Range) As Long
    NbColorSameAs = NbColor(Plage, Cellule.Interior.ColorIndex)
End Function

Il faut utilise la fonction NbColorSameAs
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 889
Membres
101 831
dernier inscrit
gillec