Ajouter un paramètre dans la fonction couleur

MGLL76

XLDnaute Nouveau
Bonsoir à tous / Toutes.
La fonction ci-dessous me permet de trouver la couleur de fond d'une cellule dans ma feuil1.

Function Couleur(CL As Range) As Long
Couleur = CL.Interior.ColorIndex
End Function

dans la feuil1 , si la cellule en B10 est de couleur verte et que j'écris dans la cellule C10 la formule suivante "=couleur(B10)", j'obtiens la valeur 3..La fonction marche donc très bien .

Ce que je souhaite c'est utiliser cette fonction dans la feuil1 mais qu'elle pointe vers une feuille que l'on choisi..Ainsi, on aurait la formule "=couleur("Indiquer la feuille à choisir"; B10)

Cela est il possible, svp ?

Cordialement
 

Jacky67

XLDnaute Accro
Bonsoir à tous / Toutes.

Ce que je souhaite c'est utiliser cette fonction dans la feuil1 mais qu'elle pointe vers une feuille que l'on choisi..Ainsi, on aurait la formule "=couleur("Indiquer la feuille à choisir"; B10)

Cela est il possible, svp ?

Cordialement
Bonjour,
Une proposition avec 3 possibilités en Pj
 

Fichiers joints

Dernière édition:

MGLL76

XLDnaute Nouveau
Bonjour...merci pour tes propositions..Y en a une qui m’intéresse mais il faudrait la modifier, si possible bien sur..Dans ton exemple ci-dessous, la formule suivante (Avec le nom de la feuille et la cellule inscrit en dur =Couleur(Feuil2!B10) ) marche car B10 est écrit en dur..
Si j'utilise ta formule dans mon projet ca ne marche car B10 est obtenu par une formule :

Dans mon projet pour trouver B10, j'ai cette formule "B" &EQUIV(Valeur à trouver;Feuil2!$A$2:$A$5;0)+1
J'obtiens ainsi je pense une chaîne de caractère..Si j'ai bien compris dans ta formule =Couleur(Feuil2!B10) , la valeur B10 est un "Range"
est ce qu'il est possible de transformer le résultat de ma formule ("B" &EQUIV.........) en un range , stp ?

Je te met en pièce jointe mon projet....
Merci d'avance pour ton aide..
 

Fichiers joints

Jacky67

XLDnaute Accro
Bonjour...merci pour tes propositions..Y en a une qui m’intéresse mais il faudrait la modifier, si possible bien sur..Dans ton exemple ci-dessous, la formule suivante (Avec le nom de la feuille et la cellule inscrit en dur =Couleur(Feuil2!B10) ) marche car B10 est écrit en dur..
Si j'utilise ta formule dans mon projet ca ne marche car B10 est obtenu par une formule :

Dans mon projet pour trouver B10, j'ai cette formule "B" &EQUIV(Valeur à trouver;Feuil2!$A$2:$A$5;0)+1
J'obtiens ainsi je pense une chaîne de caractère..Si j'ai bien compris dans ta formule =Couleur(Feuil2!B10) , la valeur B10 est un "Range"
est ce qu'il est possible de transformer le résultat de ma formule ("B" &EQUIV.........) en un range , stp ?

Je te met en pièce jointe mon projet....
Merci d'avance pour ton aide..
Re..
Il n'y a ni formule ni fonction dans la Pj…
Néanmoins essaye ceci
Code:
=Couleur(INDIRECT("Feuil2!B" &EQUIV(A2;Feuil2!$A$2:$A$5;0)+1))
 
Dernière édition:

eriiiic

XLDnaute Barbatruc
Bonjour,
un essai pour tenter de réconcilier le meilleur des 2 mondes :
VB:
Function Couleur(CL As Range, Optional ref) As Long
    Dim c As Range
    If Not IsMissing(ref) Then Set CL = CL.Parent.Range(ref)
    Couleur = CL.Interior.ColorIndex
End Function
Syntaxe 'normale' :
=Couleur(A5)
ou pour autre feuille :
=Feuil2!A5

Syntaxe forçage ref :
=Couleur(Feuil2!A1;"A5")
Si le 2nd argument optionnel Ref est présent, on prend cette ref et non celle du premier argument (sa cellule qui peut être quelconque, dans ce cas c'est juste récupérer la feuille qui nous intéresse).
eric
 

Discussions similaires


Haut Bas