Somme si la cellule est d'une certaine couleur

synapso

XLDnaute Nouveau
Bonsoir, ou rebonsoir,

Pour la suite de ma gestion de compte bancaire, je souhaite faire la somme des cellules qui sont d'une certaine couleur.

Dans mon exemple, je veux ajouter les valeurs des cellules jaunes, et les valeurs des cellules rouges.

NB: je souhaite que la cellule de couleur soit la cellule "libellé" et non la cellule du nombre.

Merci beaucoup :)

PS: j'ai recherché un peu et j'ai entendu parlé de mis en forme conditionnelle et je n'avais jamais entendu parlé de ça avant..
 

Pièces jointes

  • Condition couleur.xlsx
    10.2 KB · Affichages: 5 214

Fred0o

XLDnaute Barbatruc
Re : Somme si la cellule est d'une certaine couleur

Bonsoir synapso,

Le sujet a été maintes fois traité sur ce forum.

Vois cependant si la formule personnalisée que je te propose te convient.

A+
 

Pièces jointes

  • SommeCouleur.xlsm
    16.8 KB · Affichages: 17 753

JBOBO

XLDnaute Accro
Re : Somme si la cellule est d'une certaine couleur

Bonjour,

Pourquoi vouloir passer par le comptage de couleur ? Dans ton exemple, tu additionnes d'un coté les valeurs negatives et de l'autre les positives. Dans ce cas ces 2 formules suffisent :
=SOMME.SI($D$3:$D$8;">="&0;$D$3:$D$8)
et
=SOMME.SI($D$3:$D$8;"<"&0;$D$3:$D$8)
. De plus tu pourrais ensuite gerer les couleurs par MFC, de façon automatique.

C'est pas tout à fait ta demande mais ça donne le resultat escompté à priori, et plus simple à gerer que les sommes de couleurs.
 

synapso

XLDnaute Nouveau
Re : Somme si la cellule est d'une certaine couleur

Merci Fred0o ça à l'air de fonctionner parfaitement, je vais approfondir ça.

Sinon JBOBO, ce n'est qu'un hasard que les valeurs soient positives pour une couleur et négatives pour l'autre donc je voulais quelque chose de plus général. Merci quand même :)
 

synapso

XLDnaute Nouveau
Re : Somme si la cellule est d'une certaine couleur

Bon voilà, je viens de tester la fonctions... A première vue, elle n'existe pas par défaut, donc j'en ai déduis que c'était une fonction créée par tes soins.

J'ai donc un peu fouillé, et j'ai vu que dans les maccros, dans module, il y avait le code de la fonction sommecouleur.

J'ai réussi à l'exporter dans mon fichier excel, mais je voulais juste savoir comment il faut le faire proprement parce que j'ai fait ça un peu rapidement et donc il se peut que j'ai fais une erreur même si ça a l'air de fonctionner :)

Merci.
 

Fred0o

XLDnaute Barbatruc
Re : Somme si la cellule est d'une certaine couleur

Bonsoir,

C'est en effet une fonction personnalisée créée par mes soins pour qu'elle réponde à ta demande et soit assez flexible. C'est pour cela qu'on trouve les 4 paramètres (Zone, CRef, X, Y). Ainsi, tu pourra l'utiliser à ta convenance.

Pour son bon fonctionnement, il faut qu'elle soit placée dans une feuille "Module" de VBA. Elle pourra ainsi être appelée de n'importe quelle feuille.

Si tu veux l'utiliser dans d'autres classeurs, il te faudra la copier dans ces classeurs.

A+
 

Fred0o

XLDnaute Barbatruc
Re : Somme si la cellule est d'une certaine couleur

Bonjour synapso,

Normal ou pas, je ne sais pas. Ce qui est sûr c'ezt qu'EXCEL ne considère pas un changement de couleur comme un évènement. Donc, il ne relance pas les calculs si on change la couleur d'une cellule, contrairement au changement de valeur.

Par contre, je me suis rendu compte que j'ai oublié une instruction qui permet la mise à jour lors des recalculs de la feuille :
VB:
Function SommeCouleur(Zone As Range, CRef As Range, X, Y)
    Application.Volatile
    Dim c, Cel, S
    c = CRef.Interior.ColorIndex
    S = 0
    For Each Cel In Zone
        If Cel.Interior.ColorIndex = c Then
            S = S + Cel.Offset(Y, X)
        End If
    Next
    SommeCouleur = S
End Function

A+
 

synapso

XLDnaute Nouveau
Re : Somme si la cellule est d'une certaine couleur

Bon j'arrive à faire fonctionner ton module qui est parfait et qui se met à jour maintenant mais quand j'enregistre mon fichier j'ai un message "Les fonctionnalités suivantes ne peuvent pas être enregistrées dans des classeurs sans macro: Projet VB..."

Pourtant j'ai essayé de créer une macro mais je n'arrive pas à enregistrer mon fichier et le rouvrir avec la macro pris en compte...
 

synapso

XLDnaute Nouveau
Re : Somme si la cellule est d'une certaine couleur

C'est cela, ça marche c'est parfait. Désolé mais j'ai encore une question. Je voudrais maintenant ajouter une condition sur la date, pour trier la somme des couleurs par mois...

J'ai essayé de modifier le module, mais je n'ai aucune connaissance du langage virtual Basic... Comment puis je faire?
 

synapso

XLDnaute Nouveau
Re : Somme si la cellule est d'une certaine couleur

Function SommeCouleur_Mois_AnneeV(Zone As Range, CRef As Range, X, Y, ZoneMoisAnnee As Range, MoisAnnee As Date)
Dim c, Cel, S, i
c = CRef.Interior.ColorIndex
S = 0
i = 0
For Each Cel In Zone
i = i + 1
If Cel.Interior.ColorIndex = c And Month(ZoneMois.Cells(i, 1)) = Month(Mois) And Year(ZoneMoisAnnee.Cells(i, 1)) = Year(MoisAnnee) Then
S = S + Cel.Offset(Y, X)
End If
Next
SommeCouleur_Mois_AnneeV
End Function

J'ai voulu ajouter le paramètre année. Qu'en pensez-vous?

Merci beaucoup sinon, ça marche parfaitement :)
 

Discussions similaires

Statistiques des forums

Discussions
312 182
Messages
2 086 004
Membres
103 086
dernier inscrit
jcreant