Sous total en prenant en compte que la couleur d'une cellule

Bonjour,

Dans le même esprit que la question que j'avais posé il y a quelques jours (https://forum.excel-pratique.com/viewtopic.php?f=2&t=118656), je souhaiterai créer dans le même fichier excel une macro me permettant d'avoir un sous total en fonction de la couleur de la cellule et en prenant en compte également les macro créées dans le lien que j'ai joint, c'est à dire :

- obtenir d'une part le sous-total comme fait dans la macro

Je vous joins en excel l'exemple : je voudrais donc obtenir dans une cellule à part le sous-total des cellules vertes (voir en PJ, ce sera surement plus parlant que mon explication !)

Merci !

Bonjour,

Je te propose cette fonction personnalisée:

Function SommeCouleur(plage_somme As Range, Optional cellule_couleur As Range)
Application.Volatile

Dim cel As Range
Somme = 0

If cellule_couleur Is Nothing Then
    Set cellule_couleur = Application.Caller
End If
couleur = cellule_couleur.Interior.Color

For Each cel In plage_somme.Cells
    If cel.Interior.Color = couleur And IsNumeric(cel) And Not IsError(cel) Then
        Somme = Somme + cel
    End If
Next cel

SommeCouleur = Somme
End Function

Tu dois d'abord préciser la plage de la somme, et éventuellement la cellule de référence pour la couleur, si pas précisée, prend la couleur de la cellule actuelle.

Merci de ton retour, effectivement ça fonctionne dans le cas d'une somme mais pas lorsque j'applique un filtre : si je filtre sur "a", ce sous-total devrait faire 35...

Je te joins le fichier complété de ta macro

Ah oui, il faut que ça fasse un sous-total, je suis bête...

Du coup j'ai changé un peu la fonction:

Function SommeCouleur(plage_somme As Range, Optional cellule_couleur As Range, Optional sous_total As Boolean)

Il faut d'abord donner la plage de la somme, dire si besoin, quelle cellule doit servir de référence pour la couleur (sinon prend la cellule actuelle), et préciser si tu veux faire un sous-total, si tu ne mets rien, ça partira du principe que non, sinon tu mets VRAI.

Voici le fichier en retour avec la fonction modifiée:

bonjour

salut Ausecours

ma remarque : il faut éviter de stocker de l'information sous forme de couleur

au besoin créer une colonne dans laquelle on met un X pour signifier "terminé" ou autre signification

la couleur sera obtenue par une MFC basée sur cette colonne

c'est une bonne habitude

et ça facilite TOUS les traitements qu'on fait subir aux données

TCD, filtres, tris, sommes, sous-totaux, graphiques....

amitiés à tous et bonne année

Nickel !

Tu peux juste m'expliquer "quelle cellule doit servir de référence pour la couleur (sinon prend la cellule actuelle)" ? quand tu parles de cellule actuelle, de laquelle parles-tu ?

Sinon j'avais vu qu'on pouvait lié une couleur à un code via la fonction ColorIndex mais ça alourdirait probablement trop le code ...

Merci en tout cas !!

Bonjour à tous,

La cellule actuelle, c'est la cellule dans laquelle se trouve la formule, utiliser colorindex ça doit être possible, mais encore faut-t-il que tu saches quel code correspond à quoi...

Sinon comme dis jmd, au lieu de mettre en vert les cellules, tu mets une croix à côté par exemple, puis tu fais un sous-total en appliquant deux filtres: un sur les croix, et un sur les lettres par exemple (a,b ou c).

Bonjour

OK merci pour tes précisions

Bonne journée !

Rechercher des sujets similaires à "total prenant compte que couleur"