[RESOLU]Fonction sommesicouleur et couleur matricielle

  • Initiateur de la discussion Initiateur de la discussion Scoty
  • 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 !

Scoty

XLDnaute Occasionnel
Bonjour le forum,

Soit un calcul du nombre d'heure de Mr A par mois et par site (en fonction de la couleur de la cellule). Dans le premier fichier, cela fonctionne correctement.

J'ai voulu calculé le cout de Mr A en fonction de divers critères:
HTML:
http://www.excel-downloads.com/forum/221552-resolu-simplifier-calcul-cout-personnel-avec-fonction-matcoul-sans-ligne-de-ref.html
Une solution m'a été fourni en "matricialisant" la fonction couleur.

Mon pépin actuelle: la fonction sommesicouleur et couleur (matricielle) ne fonctionne pas si on prend comme référence la couleur d'une cellule (voir fichier 2). Et je souhaite garder cette référence de couleur cellule car je me suis rendu compte qu'en ouvrant le fichier sur excel 2007, le code couleur variait (en fixant le n° de couleur) et mes calculs étaient devenu faux!

Je pense que c'est lors de la déclaration de variable mais je sèche!

Un grand merci pour votre aide.

Dans l'attente de vs lire
@+Scoty
 

Pièces jointes

Dernière édition:
Re : Fonction sommesicouleur et couleur matricielle

Bonjour,

D'après ce que j'ai compris, en écrivant la fonction comme ci-dessous et en lui passant une cellule de référence pour comparaison:
Code:
Function SommeSiCouleur(Plage As Range, CelCouleurRef As Range) As Long
    Application.Volatile True
    Dim wCell As Range
    Dim couleur: couleur = CelCouleurRef(1, 1).Interior.ColorIndex
    For Each wCell In Plage
        If wCell.Interior.ColorIndex = couleur Then
            SommeSiCouleur = SommeSiCouleur + wCell.Value
        End If
    Next
End Function

A appeler comme ceci:=SommeSiCouleur(B6:M6;$O$5)

A+
 
Re : Fonction sommesicouleur et couleur matricielle

Bonjour Scoty, Hasco,

Ou en entrant en O6 =SommeSiCouleur(B6:M6;INDEX(couleur(O5);1))

Edit : avec une seule cellule O5 on peut aussi utiliser =SommeSiCouleur(B6:M6;MIN(couleur(O5)))

A+
 
Dernière édition:
- 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
2
Affichages
249
Retour