Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Calcul de cellules colorees mfc

  • Initiateur de la discussion Initiateur de la discussion MAG
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MAG

XLDnaute Nouveau
Bonjour,

j'aurais besoin de vos lumlieres afin de resoudre un probleme que je rencontre :

J'ai un tableau (ci-joint) j'aimerais pouvoir calculer automatiquement la somme des cellules colorees avec mise ne forme conditionnelle.

Descrition : Calculer en c40, la somme des cellules rose de c5 a e35
est-ce possible? Si je dois faire appel a une macro, pouvez vous me decrire la procedure et la formule;

merci d'avance de vos reponses
 

Pièces jointes

Re : Calcul de cellules colorees mfc

Bonjour
J'aurais fait comme ça.
Cordialement.

P.S. Bête: j'ai oublié de faire ce qui était demandé
mais la colonne AB contient maintenant de quoi le faire avec un SOMME.SI
A+
 

Pièces jointes

Dernière édition:
Re : Calcul de cellules colorees mfc

Bonjour,
je reviens vers car je rencontre encore un soucis
sur cette formule.

En effet, je travail avec un serveur. Sur mon poste j'ai Excel 2000, j'ai testé la formule
aucun problème.

Mais mes collègues, certains ont excel 2007 d'autres 2010, ne peuvent avoir accés à cette formule et ils voient "#NOM?" au lieu du résultat s'afficher.

Pourriez m'aider?

Merci d'avance
MAG
 
Re : Calcul de cellules colorees mfc

Bonjour,
Il faudrait trouver la propriété du code non supportée en excel 2007
Etant en 2003, je ne peux pas tester.
Il faudrait que tu joignes le code utilisé pour qu'un autre puisse répondre.
A+
 
Re : Calcul de cellules colorees mfc

Bonjour,
Ci-dessous la formule :
Function SommeCoulMFC(champ As Range, coul)
Application.Volatile
t = 0
For Each c In champ
If CouleurMFC(c) = coul Then
t = t + c.Value
End If
Next c
SommeCoulMFC = t
End Function

Function CouleurMFC(cel)
Application.Volatile
Set c = Range(cel.Address)
ff = Array("Somme", "aujourdhui()", "nb.si", "equiv", "recherchev", _
"Nbval", "sommeprod", "joursem", "gauche", "droite", "stxt")
fa = Array("Sum", "today()", "countif", "match", "vlookup", _
"counta", "sumproduct", "weekday", "left", "right", "mid")
a = Array("=", ">", "<", ">=", "<=", "<>", "BETWEEN")
b = Array(xlEqual, xlGreater, xlLess, xlGreaterEqual, xlLessEqual, xlNotEqual, xlBetween)
i = 1
Do While i <= c.FormatConditions.Count And Not témoin
If c.FormatConditions(i).Type = xlCellValue Then
tmp1 = Evaluate(c.FormatConditions(i).Formula1)
oper = a(Application.Match(c.FormatConditions(i).Operator, b, 0) - 1)
If oper <> "BETWEEN" Then
If Evaluate(c & oper & tmp1) Then
coul = c.FormatConditions(i).Interior.ColorIndex
témoin = True
End If
Else
tmp2 = Evaluate(c.FormatConditions(i).Formula2)
If Evaluate("AND(" & c & ">=" & tmp1 & "," & c & "<=" & tmp2 & ")") Then
coul = c.FormatConditions(i).Interior.ColorIndex
témoin = True
End If
End If
Else
z = c.FormatConditions(i).Formula1
For k = LBound(ff) To UBound(ff)
z = Replace(z, UCase(ff(k)), UCase(fa(k)))
Next k
If Evaluate(z) = True Then
coul = c.FormatConditions(i).Interior.ColorIndex
témoin = True
End If
End If
i = i + 1
Loop
CouleurMFC = coul
End Function

Par ailleurs, sur un poste également équipé d'excel 2003 cette formule ne fonctionne pas.
Est ce une erreur de ma part dans l'utilisation de cette formule? Le fait que l'on soit en réseau?
Merci de votre réponse.
A bientot
Mag
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
3 K
Membre supprimé 341069
M
Réponses
5
Affichages
4 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…