Une fonction peut-elle changer la couleur d'une cellule ?

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

FrankLB

XLDnaute Nouveau
Bonjour à tous,

Je souhaite changer la couleur d'une cellule en fonction du résultat calculé par une fonction que j'ai écrite. Je ne peux pas utiliser les MFC car plus de 3 couleurs. Je ne peux pas le faire sur toute la feuille, mais pour certaines cellules uniquement.

Merci.
 
Re : Une fonction peut-elle changer la couleur d'une cellule ?

Bonjour FrankLB

Oui c'est possible.

Dans ta fonction, il faut que tu rajoutes un test avant d'inscrire le résultat dans ta cellule, et tu définis tes couleurs par là.

Code:
If [B]maVariable[/B] = [B]telResultat[/B] Then
    Range("[B]..[/B]")/cells([B]?[/B],[B]?[/B]).interior.colorindex = [B]?[/B]
    else
    ...
end if

En gras, c'est ce qui va varier en fonction de ce que tu veux.
Ce qui est attendu après le "colorindex =" est un chiffre. Mais je connais pas tous les codes de couleurs.

Pour les avoir, tu peux enregistrer des macros.

Cordialement,
Thomas
 
Re : Une fonction peut-elle changer la couleur d'une cellule ?

Bonjour le fil,

NON Orodreth, c'est impossible.

Une fonction VBA (Function/End Function) n'a qu'un rôle "passif". Elle peut renvoyer une valeur à la cellule appelante, mais ne peut en aucun cas agir sur l'objet cellule (range) en terme de couleur, format ou autre...

En revanche, une procédure Sub "classique" le peut.

Cordialement,
 
Re : Une fonction peut-elle changer la couleur d'une cellule ?

Je n'arrive pas à faire changer la couleur : je dois louper quelque chose...
Ci-après le code expurgé de la fonction utilisée.

Dans la cellule j'ai : "=EssaiCouleur()"
J'obtiens bien "1"; mais pas le rouge...

Si tu peux m'aiguiller.

Crdl.
Frank.

Function EssaiCouleur() As Integer

Selection.Interior.ColorIndex = 3
EssaiCouleur = 1

End Function
 
Re : Une fonction peut-elle changer la couleur d'une cellule ?

Bonjour les garçons 😉

Ah ce Didier grand modeste devant l'éternel qui ne vous parle pas de son bijou ci-joint


A vous lire

Samantha
VRP MDf😛
 

Pièces jointes

Re : Une fonction peut-elle changer la couleur d'une cellule ?

Samantha
VRP MDf😛

Ouarf ! Samantha, tu es embauchée ! 😀

Merci Samantha. Effectivement, je crois que grâce à toi en particulier et aussi à quelques autres, cette macro survit encore. Mais je doute que cette dernière puisse répondre au besoin de FrankLB tel que décrit.

Très cordialement,
 
Re : Une fonction peut-elle changer la couleur d'une cellule ?

Re: Ben oui hein pourquoi chercher tous les jours à réinventer le fil à couper le beurre quand il existe 😉

Tout dépend si la MFC que FrankLB veut appliquer se rapporte à un résultat numérique ou alphabétique ou alphanumérique ou à un intervalle (je pense effectivement que s'il s'agit d'intervalles ça peut ne pas le faire j'ai jamais testé ta macro dans ce sens 😉)


Sam
 
Re : Une fonction peut-elle changer la couleur d'une cellule ?

Bonjour le fil, MyDearFriend, Samantha


Excuse moi ? J'ai pas l'impression que le VBA soit particulièrement chiant sur ce point d'algorythmique.
Qu'est-ce qui t'empêche de faire des manip de cellule tant que tu retournes le résultat attendus à la fin ?
Par exemple, tu crées une fonction qui va justement colorier certaines cellules, et qui retourne le nombre de ces cellules coloriées ?

ça ne me semble pas du tout impossible 😱

Edit: d'ailleurs, je le prouve avec un fichier joint tout con.
La manip se fait sur la Feuil1, et ma FONCTION (qui est appelée depuis une Sub) modifie les cellules, puis renvoie le nombre de cellules qu'elle a modifié.

Thomas
 

Pièces jointes

Dernière édition:
Re : Une fonction peut-elle changer la couleur d'une cellule ?

Bonjour le fil,

Arf, je vois que l'ami Orodreth est plein d'humour ! (Heu... rassure-moi, c'était bien de l'humour, hein ?)
Orodreth à dit:
Bonjour le fil, MyDearFriend, Samantha


Excuse moi ? J'ai pas l'impression que le VBA soit particulièrement chiant sur ce point d'algorythmique.
Qu'est-ce qui t'empêche de faire des manip de cellule tant que tu retournes le résultat attendus à la fin ?
Par exemple, tu crées une fonction qui va justement colorier certaines cellules, et qui retourne le nombre de ces cellules coloriées ?

ça ne me semble pas du tout impossible 😱

Edit: d'ailleurs, je le prouve avec un fichier joint tout con.
La manip se fait sur la Feuil1, et ma FONCTION (qui est appelée depuis une Sub) modifie les cellules, puis renvoie le nombre de cellules qu'elle a modifié.


Thomas
Ben justement, le "tout con" de l'histoire, c'est que notre ami FrankLB parle bien d'une Fonction personnalisée appelée directement depuis une cellule et non pas une fonction lancée par une Sub lol ! :
FrankLB à dit:
... Dans la cellule j'ai : "=EssaiCouleur()"
J'obtiens bien "1"; mais pas le rouge...
Par contre, plaisanterie mise à part, si tu fais une "vraie" function personnalisée de feuille de calcul qui fait ça, tu risques d'intéresser beaucoup de monde, et moi en tout cas, je reste preneur...

Cordialement,
 
Re : Une fonction peut-elle changer la couleur d'une cellule ?

Re. Salut wilfried.

Ah ouais, j'avais pas vu le coup de la fonction pour excel, pour moi, fonction, c'est pour du code VBA.

Si j'ai le temps, j'y réfléchirai, ça peut etre sympa en effet.

Thomas
 
Re : Une fonction peut-elle changer la couleur d'une cellule ?

Bonjour Samantha, FrankLb, Orodreth, MyDearFriend, Wilfried42,

J'ai une question bête et peut être y a t il des fils sur le sujet d'ailleurs... (En tout cas pas vu dans le Wiki). Mais comme je passe par là, j'en profite par fainéantise : Comment affecte t on une fonction personnalisée VBA à une cellule ?

Cordialement
 
- 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

Retour