Affecter un chiffre en fonction de la couleur de la cellule

Bonjour,

Comme expliqué dans le titre je souhaite affecter un chiffre en fonction de la couleur de ma cellule. J'ai seulement 3 couleurs différentes (rouge, orange, vert) qui provienne d'une MFC, j'ai donc pris les références RGB des 3 couleurs. Ma plage de donné est variable et plutôt grande, Il est donc plus simple pour moi de creer une fonction en VBA et j'appliquerai directement ma fonction sur les cellules de mon choix.

Ma fonction est simple:

Si la cellule est rouge alors la cellule = 3

Si la cellule est orange alors la cellule = 2

Si la cellule est verte alors la cellule = 1

Je ne maîtrise pas du tout la création de fonction en VBA

je vous mets mon code :

Function NbSiCouleur(Plage As Range) As Long
    Application.Volatile True
Dim wCell As Range
    For Each wCell In Plage
        If wCell.Interior.ColorIndex = RGB(247, 150, 70) Then 'orange
        NbSiCouleur = wCell.Value = 2
        ElseIf wCell.Interior.ColorIndex = RGB(146, 208, 80) Then 'vert
        NbSiCouleur = wCell.Value = 1
        ElseIf wCell.Interior.ColorIndex = RGB(192, 80, 77) Then 'rouge
        NbSiCouleur = wCell.Value = 3
        End If
    Next
End Function

Meci de votre aide.

Cdlt,

Founguex.

Bonsoir,

Si la couleur est appliquée par MFC, il doit être possible d'inscrire 1, 2 ou 3, en vérifiant les mêmes conditions que pour la MFC, non?

Un extrait significatif de ton fichier aiderait à comprendre, sans doute!?

Bonjour et merci de ta réponse,

Ma MFC est faites à partir d'une fonction, je ne pense pas qu'il soit possible d'inscrire 1 2 ou 3, je te joins mon classeur pour que tu comprennes un peu mieux. Ma fonction que j'essaye de mettre s'applique dans la partie planning soit à partir de la colonne "J" jusqu'à "CR".

Quand j'essaye de la mettre en place elle m'affiche 0 et efface mes barres de planning quand je l'étends sur les autres colonnes !!

Merci par avance si tu peux m'aider à résoudre ce pb

Founguex.

Bonsoir,

Désolé, mais je n'ai pas pu repasser plus tôt!

Je viens de regarder à tes Mises en Forme Conditionnelles ... est-ce que tu pourrais exprimer simplement en français à quelles conditions les cellules doivent devenir rouges, oranges ou vertes?

J'ai un peu de mal à m'y retrouver ... d'autant que les MFC s'appliquent à des zones disjointes!?

Bonjour et je m'excuse pour la complexité/désordre de mon classeur.

Comme tu peux le voir mes MFC (vert orange rouge) correspondes à des temps de travail:

  • vert : les travaux sont réalisé c-à-d début de tâche jusqu'à aujourd'hui
  • orange : les travaux sont à faire donc de aujourd'hui jusqu'à l'échéance
  • rouge: les travaux sont en retard donc échéance jusqu'à aujourd'hui

C’est vrai que ça parait simple(je ne sais pas si tu souhaites juste l'explication simple), mais il y a un paquet de condition dans ma formule MFC qu'il ne faut pas oublier sinon ma MFC ne s'applique pas correctement. Les autres MFC ne sont que de la mise en forme. Et comme tu peux voir le fait de créer des lignes créer en même temps un nouvelle MFC pour la ligne ce qui cause la multitude de MFC quand on regarde dans "cette feuille de calcul" et les zones disjointes !!!

Pour simple information, ma fonction n'est-elle pas réalisable ?

Cdlt,

Founguex

Bonjour,

La fonction que tu as écrite a -à première vue- été détournée de son objectif initial. Elle ne saurait fonctionner, parce qu'elle contient (à mon humble avis) plusieurs incohérences

De toute manière, une couleur de remplissage appliquée par le biais d'une MFC ne peut pas être "récupérée" par Interior.ColorIndex (il y a bien une propriété DisplayFormat, mais celle-là ne peut être utilisée dans une Function ... à ma connaissance!?).

Le "moins pire" serait donc d'inscrire une de tes 3 valeurs par formule ... pour cela, on aura effectivement besoin de la version complète des explications!

Bonjour,

A ce que je vois la possibilité de remplir une cellule en fonction de sa couleur n'est donc pas envisageable, c'est bien dommage !!

Du coup j'ai fait le contraire, j'ai mis mes formules dans le planning. J'ai donc 1, 2 ou 3 qui s'affiche dans mes cellules.J'ai ensuite crée 3 MFC qui prennent la couleur vert orange ou rouge en fonction du chiffre présent dans la cellule.

Certes mes cellules comportent une formule relativement longue mais cela fonctionne bien.

Je ne pense pas te demander plus à ce sujet, merci quand même de ton aide. Au plaisir de te revoir sur ce forum.

Founguex.

Rechercher des sujets similaires à "affecter chiffre fonction couleur"