Calculs en tenant compte des couleurs de fond

[Résolu/Fermé]
Signaler
-
Messages postés
14
Date d'inscription
vendredi 22 mai 2015
Statut
Membre
Dernière intervention
15 juin 2015
-
Bonjour,

Je souhaiterais effectuer le calcul suivant :
Additionner le montant des cellules avec un fond de couleur (jaune par exemple), avec le montant des cellules d'un autre fond de couleur (rouge par exemple) que si ces cellules à fond rouge contiennent un mot précis (mot étant sur la même ligne mais pas dans la même cellule).

Je dispose de la fonction pour additionner le contenu des cellules de fond de même couleur :

Function SommeSiCouleur(Plage As Range, NumeroDeCouleur%) As Currency
Application.Volatile True
Dim wCell As Range
For Each wCell In Plage
If wCell.Interior.ColorIndex = NumeroDeCouleur Then
SommeSiCouleur = SommeSiCouleur + wCell.Value
End If
Next
End Function

'Formule à insérer dans cellule
'=SommeSiCouleur($C$1:$C$34;3)

et Je dispose de la fonction pour calculer le nombre de cellules selon une couleur de fond avec un mot :

Function CptTxtEntraide(champ As Range)
Application.Volatile
Dim C, temp
For Each C In champ
If C.Value = "DIVERS" And C.Interior.Color = RGB(255, 0, 0) Then

temp = temp + 1
End If
Next C
CptTxtEntraide = temp
End Function

'Formule à insérer dans cellule
=CptTxtDivers(C7:C319)

Je suppose qu'il faille arriver à faire un mix des 2 pour ce que je veux faire....
Merci pour votre aide!

Cordialement


7 réponses

Messages postés
10111
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 septembre 2021
2 204
Salut Le Pingou et merci pour le bébé
Le sujet n'est plus d'actualité, mais pour ne pas laisser la chose en rade

1. La fonction adaptée au fichier
Public Function SomSiCoulText(plage As Range, c As Long, t As String) As Single
Dim li As Long, cel As Range, s As Single
s = 0
Application.Volatile
For li = 1 To plage.Rows.Count
  If plage.Cells(li, 1).Interior.ColorIndex = c And plage.Cells(li, 1).Value = t Then s = s + plage.Cells(li, 2).Value
Next li
SomSiCoulText = s
End Function

2. L'appel depuis la feuille
=somsicoultext($A$2:$B$14;43;"LA POSTE")+somsicoultext($A$2:$B$14;3;"LA POSTE")

Bonne journée à tous
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42854 internautes nous ont dit merci ce mois-ci

Messages postés
14
Date d'inscription
vendredi 22 mai 2015
Statut
Membre
Dernière intervention
15 juin 2015

Merci CCM81
J'ai essayé ta nouvelle formule par curiosité, et elle ne marche pas. Elle me retourne un résultat =70 800 euros dans ma cellule total au lieu des 125 500 euros escomptés...
Messages postés
14
Date d'inscription
vendredi 22 mai 2015
Statut
Membre
Dernière intervention
15 juin 2015
>
Messages postés
14
Date d'inscription
vendredi 22 mai 2015
Statut
Membre
Dernière intervention
15 juin 2015

Mea culpa, j'avais des cellules corrompues... Ta formule marche... Merci CCM81!!!
Cependant si j'ajoute des colonnes entre la colonne client et la colonne des totaux ta formule ne marche plus....
Messages postés
10111
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 septembre 2021
2 204
Ah bon
En voilà deux pour le prix d'une ;-)
https://www.cjoint.com/?3EAnqZWigkR
Cdlmnt
Messages postés
10111
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 septembre 2021
2 204
Oui mais si tu changes le cahier des charges, il va falloir faire un avenant au contrat !
https://www.cjoint.com/?3EAnKqDQgQK
L'appel depuis la feuille
=SommeCouleurTexte(H2:H14;H5;J2:J14)+sommeCouleurTexte(H2:H14;H14;J2:J14)


Cdlmnt
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42854 internautes nous ont dit merci ce mois-ci

Messages postés
14
Date d'inscription
vendredi 22 mai 2015
Statut
Membre
Dernière intervention
15 juin 2015

Merci ccm81, la formule fonctionne!!!
Bon après midi ;)
Messages postés
14
Date d'inscription
vendredi 22 mai 2015
Statut
Membre
Dernière intervention
15 juin 2015

CCM81, j'aurai encore une question à te poser pour calculer le montant des devis la poste vert que s'ils ont un n° de commande en case G. cf fichier ci joint
https://www.cjoint.com/c/EEApcwVUkTY
Messages postés
10111
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 septembre 2021
2 204
Avec les modèles tu aurais pu trouver toi même !
https://www.cjoint.com/?3EAqaPg86ut
Messages postés
14
Date d'inscription
vendredi 22 mai 2015
Statut
Membre
Dernière intervention
15 juin 2015

Trouver moi même, je pense pas... Je suis débutante de chez débutante... Avec un esprit logique qui confine le néant... Mais heureusement pour moi j'ai d'autres qualités ;)
Et pour répondre à ta question sur fichier xl, oui j'ai besoin des couleurs.
En tout cas merci 1 000 fois pour ton aide et ta collaboration! Tu es d'une efficacité redoutable. Ma seule incompréhension, pourquoi es tu encore en version 2003 alors que nous sommes en 2015? Si c'est pour des problèmes de budget, je dis pas...Mais sinon.
Cette discussion est définitivement close! Merci Merci Merci!!!
Vive ccm81!!!
Messages postés
10111
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 septembre 2021
2 204
Bonjour

Je ne sais pas si j'ai tout compris
https://www.cjoint.com/?3EwpMthezI2

Cdlmnt
Messages postés
14
Date d'inscription
vendredi 22 mai 2015
Statut
Membre
Dernière intervention
15 juin 2015



Voici quelques explications... Merci pour votre aide;)
Messages postés
10111
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 septembre 2021
2 204
Question. tu veux additionner les sommes "la poste - verts" et les "la poste - rouges"
Si c'est ça, modifies cette ligne
  If cel.Interior.ColorIndex = c And Application.WorksheetFunction.CountIf(Rows(li), t) > 0 Then s = s + cel.Value

puis dans ta feuille, tu fais un
sommesicoultext(plage,vert,"la poste")+sommesicoultext(plage,rouge,"la poste")

Si ce n'est pas ça, peux tu mettre ton bout de fichier au format excel 2003 et surtout mettre le résultat attendu sur ton exemple

Cdlmnt
Messages postés
14
Date d'inscription
vendredi 22 mai 2015
Statut
Membre
Dernière intervention
15 juin 2015

Oui je veux additionner les sommes "la poste - verts" et les "la poste - rouges"
J'ai essayé ta solution, mais ça ne marche pas...
Je récapitule, j'ai écrit dans macro la fonction suivante :
Function SommeSiCouleurText(Plage As Range, NumeroDeCouleur%) As Currency
Application.Volatile True
Dim wCell As Range
For Each wCell In Plage
If Cel.Interior.ColorIndex = C And Application.WorksheetFunction.CountIf(Rows(li), t) > 0 Then s = s + Cel.Value

End If
Next
End Function

et dans ma cellule
=SommeSiCouleurText(I7:I319,43,"LA POSTE")+SommeSiCouleurText(I7:I319,3,"LA POSTE")
Messages postés
10111
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 septembre 2021
2 204
Peux tu envoyer un bout de ton vrai fichier au format excel 2003 via cjoint.com
Bonjour,

Je ne dispose pas d'excel 2003 MAIS 2010.

Voici le lien pour mon fichier
http://cjoint.com/?0ExlrzFvbcI

Cordialement
message 7???
Messages postés
10111
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 septembre 2021
2 204
Les messages son numérotés (en haut à droite du message)
Tu fais enregistrer sous/ fenêtre Type et tu choisis exel 2003 .xls
Messages postés
10372
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 septembre 2021
1 197 >
Messages postés
10111
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 septembre 2021

Bonjour ccm81,
Voici le lien pour la version xls : https://www.cjoint.com/?3EyxnMAnsts
Salutations
Le Pingou
Messages postés
14
Date d'inscription
vendredi 22 mai 2015
Statut
Membre
Dernière intervention
15 juin 2015
>
Messages postés
10372
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 septembre 2021

Merci le Pingou
C'est bon laisse tomber... J'y suis arrivée toute seule avec une mise en forme conditionnelle. Merci quand même!!!