Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Somme avec test logique

2 réponses
Avatar
DomDom
Bonjour, j'aimerais additionner les valeurs de différentes cellules selon la
couleur de remplissage dans laquelle elles de trouvent. Par exemple, faire la
somme de tous les chiffres qui ont le jaune comme couleur de cellule. J'ai
pensé à cette formule mais ça ne fonctionne pas??
La fonction si:
=SI(couleurderemplissage=jaune(C12:L12);SOMME(C12:L12);"")
ou peut-être la fonction somme.si serait plus approprié?
Dans tous les cas j'ai une erreur sur le nom qui est rapporté par Excel.
Je travail avec une fonction d'un classeur excel et non des macros.
Merci
Dominique

2 réponses

Avatar
ChrisV
Bonjour DomDom,

Dans un module du classeur:

Function SomCool(Zone As Range, couleur As String)
Application.Volatile True
Select Case couleur
Case "rouge": couleur = 3
Case "vert": couleur = 50
Case "jaune": couleur = 6
Case "bleu": couleur = 5
Case "gris": couleur = 15
Case "orange": couleur = 40
End Select
For Each cell In Zone
If cell.Interior.ColorIndex = couleur Then cvSomme = _
cvSomme + cell.Value
Next
SomCool = cvSomme
End Function

Sur l'onglet souhaité, avec la plage de cellules "colorées" nommée ici Zn
=SomCool(Zn;"jaune")


ChrisV


"DomDom" a écrit dans le message de news:

Bonjour, j'aimerais additionner les valeurs de différentes cellules selon
la
couleur de remplissage dans laquelle elles de trouvent. Par exemple, faire
la
somme de tous les chiffres qui ont le jaune comme couleur de cellule. J'ai
pensé à cette formule mais ça ne fonctionne pas??
La fonction si:
=SI(couleurderemplissage=jaune(C12:L12);SOMME(C12:L12);"")
ou peut-être la fonction somme.si serait plus approprié?
Dans tous les cas j'ai une erreur sur le nom qui est rapporté par Excel.
Je travail avec une fonction d'un classeur excel et non des macros.
Merci
Dominique


Avatar
Benead
Bonsoir DomDOm,

Sous XL2000, Il faut une fonction personnalisée pour le faire, comme celle-ci :

Function SommeCouleur(Plage As Range, IndexCouleur As Byte) As Double
Dim Cellule As Range, Somme As Double, Couleur As Byte
Application.Volatile
If Not Plage Is Nothing Then
For Each Cellule In Plage
Couleur = IIf(Cellule.Interior.ColorIndex = -4142, 0, Cellule.Interior.ColorIndex)
If Couleur = IndexCouleur _
And IsNumeric(Cellule) Then
Somme = Somme + Cellule.Value
End If
Next Cellule
End If
SommeCouleur = Somme
End Function

Dans une cellule tu mets :
=SOMMECOULEUR(TaPlage;Couleur)
ou Couleur représente un nombre entre 0 (Automatique) et 56 :dans l'aide de ColorIndex, tu trouveras les équivalences
couleur (1=noir,2=blanc, 3=rouge...)

A+
Benead
XL2000

DomDom a écrit:
Bonjour, j'aimerais additionner les valeurs de différentes cellules selon la
couleur de remplissage dans laquelle elles de trouvent. Par exemple, faire la
somme de tous les chiffres qui ont le jaune comme couleur de cellule. J'ai
pensé à cette formule mais ça ne fonctionne pas??
La fonction si:
=SI(couleurderemplissage=jaune(C12:L12);SOMME(C12:L12);"")
ou peut-être la fonction somme.si serait plus approprié?
Dans tous les cas j'ai une erreur sur le nom qui est rapporté par Excel.
Je travail avec une fonction d'un classeur excel et non des macros.
Merci
Dominique