Somme en fonction de la couleur du texte de la cellule [Résolu/Fermé]

Signaler
Messages postés
25
Date d'inscription
samedi 28 décembre 2013
Statut
Membre
Dernière intervention
14 avril 2016
-
Messages postés
25
Date d'inscription
samedi 28 décembre 2013
Statut
Membre
Dernière intervention
14 avril 2016
-
Bonjour,

je voudrai avoir un petit coup de main pour fabriquer le vba pour faire une action bien précise.

J'ai 2 colonnes dont l'une d'elle contenant des nombres et l'autre avec des chaines de caractères.

Je voudrai additionné la colonne avec les nombres en fonction de la couleur de la colonne contenant la chaine de caractère correspondant à la même ligne.

C'est assez dur à expliquer. Rien ne vaut un petit exemple pour que tout soit clair avec des """balises"""" pour illustrer la couleur de la chaîne dans excel

100 <red>Ce texte est rouge</red>
250 <black>Ce texte n'est pas rouge </black>
300 <red>Ce texte est rouge</red>
450 <black>Ce texte n'est pas rouge </black>
200 <red>Ce texte est rouge</red>
300 <black>Ce texte n'est pas rouge</black>

Résultat attendu 600

S'il y a des soucis de compréhension même avec l'exemple n'hésitez pas :)

Merci par avance de l'aide que vous allez m'apporter !

5 réponses

Messages postés
1263
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
15 mai 2017
539
Bonjour,

Vois si tu peux utiliser le procédé de ce lien :
http://gerard.g.pagesperso-orange.fr/logexl_05.htm#somme_couleur_cellules

Cordialement
Messages postés
25
Date d'inscription
samedi 28 décembre 2013
Statut
Membre
Dernière intervention
14 avril 2016
8
Bonjour g,

malheureusement le lien que tu as donné correspond plus ou moins à ce qui existe déjà.

Quelqu'un sur ce même forum a proposé un vba permettant d'additionné une plage en fonction de sa couleur.
Lien : https://forums.commentcamarche.net/forum/affich-4185981-excel-somme-cellules-uniques-texte-en-couleur

Par ailleurs c'est pas exactement ce que je veux. Car le vba fait la chose suivante:

<red>100</red>
<black>250 </black>
<red>300</red>
<black>450</black>
<black>200</black>
<black>300</black>

Resultat: 400

Description du vba du lien: compare toute la couleur de la plage de nombre en fonction d'une cellule ayant comme couleur d'écriture le rouge.

Cela marche correctement mais uniquement sur une seule plage. Ce que je voudrai justement c'est que la plage des nombres n'est pas une couleur différente mais que c'est la colonne juste à côté (composée de chaîne de caractère) qui décide OU NON d'additionnée, en fonction de sa couleur, le nombre associé sur la même ligne
Messages postés
9645
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
6 janvier 2021
2 008
Bonjour

Peux tu envoyer la partie concernée de ton fichier, sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu

Cdlmnt
Messages postés
25
Date d'inscription
samedi 28 décembre 2013
Statut
Membre
Dernière intervention
14 avril 2016
8
voilà le lien cjoint: https://www.cjoint.com/c/EJEsFXaMLpH

Macro de la fonction cumul_couleur:

Public Function cumul_couleur(plage As Range, col As Range)
Dim elm As Object
Application.Volatile
cumul_couleur = 0
For Each elm In plage
If elm.Font.ColorIndex = col.Font.ColorIndex Then
cumul_couleur = cumul_couleur + elm.Value
End If
Next elm
End Function


PS: La couleur rouge des entreprises se fait grâce à une mise en forme conditionnelle du type "texte qui contient.."

Merci encore !
Messages postés
9645
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
6 janvier 2021
2 008
Bonjour

as tu vraiment besoin d'une macro
La formule de la MFC peut aussi s'appliquer à un SOMME.SI
http://www.cjoint.com/c/EJFlgS4uKOI

Cdlmnt
Messages postés
25
Date d'inscription
samedi 28 décembre 2013
Statut
Membre
Dernière intervention
14 avril 2016
8
Héhé la fonction SOMME.SI marche bien car tu test en fonction du contenue de la cellule. Sur ton lien tu cherches d'additionner si la cellule = "moyenne"

La est toute la difficulté, car ce que je voudrai c'est pas en fonction du contenue écrit dans la cellule mais bel et bien la couleur de la police dans la cellule :).

Mon excel était peut être pas assez clair.

J'en ai refait un si tu es encore prêt à m'aider:

https://www.cjoint.com/c/EJFnVGOkZgH

Cordialement et merci encore de ton aide
Messages postés
9645
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
6 janvier 2021
2 008
En voici deux pour le prix d'une
http://www.cjoint.com/c/EJFogDE87mI

Attention
. La couleur ne doit pas provenir d'une MFC

Cdlmnt
Messages postés
25
Date d'inscription
samedi 28 décembre 2013
Statut
Membre
Dernière intervention
14 avril 2016
8
Bah écoute, c'est exactement ce que je voulais !

Merci beaucoup de ton aide !

Je mets le sujet resolu

Cordialement,