fonction dans condition

BJL

XLDnaute Nouveau
Bonjour,
la réponse à ma question existe sans doute, mais je n'ai pas trouvé ... désolé.

J'ai une petite macro qui renvoie le code couleur d'une cellule (et qui fonctionne), que j'ai intitulée info_couleur :
Function info_couleur(laRange As Range) As Double
info_couleur = laRange.Interior.Color
End Function

Je fais un somme.si, qui ne marche pas, mais qui montre ce que je veux faire :
=SOMME.SI(AM:AM,info_couleur()=info_couleur($C$1))
qui permet de faire la somme des cellules dont le fond est de la même couleur qu'une cellule de référence.
Pas de message d'erreur mais résultat 0 (zéro) systématique.
Qu'est-ce qui cloche ?
Comment corriger (je voudrais ne pas créer de cellule intermédiaire, content les résultats de info_couleur, par exemple).
Un grand merci d'avance !
 

chris

XLDnaute Barbatruc
Re : fonction dans condition

Bonjour

Il est assez difficile d'imbriquer des fonctions dans les NB.SI, SOMME.SI et autres cousines car les arguments attendus en critères doivent être dans une chaîne.

En plus info_couleur ne contient pas d'argument dans ta formule et il semble manquer un argument à SOMME.SI...
 

ROGER2327

XLDnaute Barbatruc
Re : fonction dans condition

Bonjour à tous.


Personnellement, je réécrirais la fonction info_Couleur comme ceci :​
VB:
Function info_Couleur(laPlage As Range)
'(laPlage est supposée être une cellule unique ou une partie de colonne.)
Dim i&, r As Variant, Cel As Range
  Application.Volatile
  If laPlage.Cells.Count = 1 Then
    r = IIf(laPlage.Interior.ColorIndex < 0, "incolore", laPlage.Interior.Color)
  Else
    r = laPlage
    For Each Cel In laPlage
      i = i + 1
      r(i, 1) = IIf(Cel.Interior.ColorIndex < 0, "incolore", Cel.Interior.Color)
    Next
  End If
  info_Couleur = r
End Function
et je laisserais tomber SOMME.SI au profit de SOMME :​
Code:
=SOMME(SI(ESTNUM($AM$1:$AM$20);$AM$1:$AM$20)*(info_couleur($AM$1:$AM$20)=info_couleur(C1)))
À valider par Ctrl Maj Entrée, bien-sûr !

Voir le classeur joint.​


ℝOGER2327
#7467


Samedi 14 Gidouille 141 (Saint Colon, artilleur - fête Suprême Quarte)
10 Messidor An CCXXII, 1,2316h - faucille
2014-W26-6T02:57:21Z
 

Pièces jointes

  • Somme selon couleur de fond.xlsm
    17.1 KB · Affichages: 40

Discussions similaires

Réponses
7
Affichages
800

Statistiques des forums

Discussions
312 540
Messages
2 089 408
Membres
104 163
dernier inscrit
Lolo37