Couleurs dans cellule

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

DPI

XLDnaute Nouveau
Bonjour,
J'ai besoin d'aide pour mettre de la couleur dans une cellule.
Dans la colonne A6 j'ai la couleur verte, dans la coulour B6 j'ai la couleur jaune, et je voudrais que la colonne D6 soit magenta quand les deux conditions sont ensembles.
J'ai écris la macro suivante :

Sub color()
'
' color Macro
If Range("A6").Value > 0.01 And Range("B6").Value > 0.01 Then
Range("D6").Interior.ColorIndex = 7
End If
If Range("A6").Value > 0.01 Then
Range("D6").Interior.ColorIndex = 6
End If
If Range("B6").Value > 0.01 Then
Range("D6").Interior.ColorIndex = 4
End If
If Range("D6").Value = 0 Then
Range("D6").Interior.ColorIndex = 0
End If
End Sub

Cette formule fonctionne pour le vert le jaune, mais pas pour le magenta.

Ces formules doivent s'appliquer sur plusieurs colonnes N,P,R,T.... et sur 120 lignes.

Pouvez-vous m'aider ? Merci d'avance.
Christel
 

Pièces jointes

Re : Couleurs dans cellule

Bonjour DPI, Christel et bienvenue,

Ton message concerne les macros ... ton exemple contient des mises en forme conditionnelles.
D'autre part, quand tu écris
dans la coulour B6
... tout le monde comprend bien que tu as fait une faute de frappe, mais ...
et si tu prenais le temps de lire Lien supprimé et de rédiger ta demande en prenant conscience du fait que personne ne connaît ton fichier et moins encore ce que tu souhaites en faire? Pourquoi passer aux macros et ne pas poursuivre avec les MFC?
 
Re : Couleurs dans cellule

Salut DPI et le forum
Heureusement que tu as mis un fichier d'essai, sinon on aurait pu chercher longtemps !

Première règle : on ne peut détecter si une MFC est à vrai ou non.
Deuxième règle : Une MFC ne modifie aucunement la cellule : elle ajoute un "calque" qui répond à la première règle.

Tu utilises des MFC => c'est, en général, mieux qu'une macro. Mais ton utilisation me laisse perplexe :
Cellule A6
Condition 1
si 0,01<=A6<=50 => fond vert : si A6 est supérieur ou égale à 1 cents et inférieur ou égale à 50€, le fond de A6 apparaît en vert : là, je comprends
Condition 2
si 0<=A6<=0,001 => police blanche : si A6 est supérieur ou égale à 0 et inférieur ou égale à 0,001, A6 paraît vide : ??? si on veut éliminer les fractions de centimes positives, ce devrait être 0,01<A6. Mais là, on élimine que celle jusqu'au dixième de centime => 0,002€ apparaît comme 0,00€.

Ajouter des conditions alourdit le fichier. Après essais, il vaut mieux supprimer les conditions inutiles.

Idem pour B6

mets ta MFC sur 1000 lignes, avec ou sans la condition 2, tu verras sans doute la différence de taille pour ton fichier.

Ton problème : colorier D6 en Magenta (n'apparaît pas sur la palette par défaut, on dira rouge) si (0,01<=A6<=50) et (0,01<=B6<=50).
tu as déjà des MFC sur cette cellule => Je n'ai pas compris le format défini pour ta condition 2, pas de changement en police, bordure ou fond.

Quelque soit la méthode utilisé pour colorer le fond, la MFC sera prédominante : essaie donc de colorer le fond de A6 en rouge manuellement : Reste vert, tant que tu as une valeur entre 0,01 et 50 => si tu mets 0, le fond réapparaît.

Ta condition 1 sert à éliminer visuellement les valeurs négatives et nulle.

À la place d'un mélange Macro/MFC, je te propose une autre solution :

D6 sélectionnée :
Format de cellule Catégorie "Personnalisée", Type : 0;;
0 : le format dont tu veux "habiller" ta valeur : 0 ou # ##0,00€, etc...
Les partie négative ou nulle n'ayant aucune représentation, rien n'apparaîtra.

Condition 1
Case 1 : la formule est
Case 2 : =((0,01<=$A6)*($A6<=50))*((0,01<=$B6)*($B6<=50))
Format : Fond magenta
tu valides

inconvénient, par rapport à une macro : c'est plus "lourd" => une condition sur chaque cellule concernée.
Si tu veux inclure d'autres MFC sur D6, il faudra gérer leur hiérarchisation.

Avantage, par rapport à une macro : tu sais déjà manipuler les MFC
Tu peux mettre une formule en A6 ou B6, la MFC continue d'agir
Tu peux reproduire facilement la MFC (avec l'icone pinceau)
Pas besoin de définir à l'avance la plage de déclenchement de la MFC automatique
Si tu veux d'autres changement, tu sait que tout se situe dans la MFC : pas besoin de calculer quand la macro doit agir et quand c'est la MFC qui domine.

Sur ton fichier d'essai, je n'ai traité que D6 et F6, mais une simple copie du format de D6 peut s'appliquer partout.

Nota : ne disposant que de la version 2003, ce fichier est au format xls
A+
 

Pièces jointes

Dernière édition:
Re : Couleurs dans cellule

c'est un extrait d'un classeur qui fait 5 Mo, donc je ne peux pas le mettre en pièce jointe. Il faut ce contenter de ça. Donc, il faut que j'arrive, à mettre de la couleur dans certaines colonnes comme je le disais précédemment. J'ai commencé avec des MFC pour les cellules vertes et jaunes en A2,A3,A4,A5,A6.... et B2, B3, B4, B5, B6... et après dans les cellules de droites D6 F6 H6... j'ai fait des macros pour arriver à mettre les couleurs suivant celles qui se trouvents en A et B quand elles sont individuelles, mais je ne suis pas arrivée à faire la condition quand les cellules des colonnes A et B sont toutes les deux renseignées et de mettre une autre couleur dans les cellules D6 F6 H6.... Je ne sais pas si je suis claire. Ce n'est pas évident d'expliquer ce que je veux sur l'extrait joint. Je pense que si j'avais pu mettre le fichier normal, cela aurait été plus explicite.
Merci quand même si vous pouvez m'aider.
Christel
 
Re : Couleurs dans cellule

Salut DPI et le forum
c'est un extrait d'un classeur qui fait 5 Mo, donc je ne peux pas le mettre en pièce jointe.
Qu'est-ce qu'on a besoin ? comme ton fichier d'essai : 4, 5 ligne avec une coloration manuelle et une explication de comment on sait que la cellule doit changer de couleur.
j'ai fait des macros pour arriver à mettre les couleurs suivant celles qui se trouvent en A et B quand elles sont individuelles
Comme je ne connais pas tes niveaux en formules ou en macro, difficile d'être de bon conseil. Toutefois, mélanger les genres apporte souvent plus de problèmes.
Soit tu fais des coloriage par MFC, soit par macro.
Si tu fais les deux :
- À ma connaissance, on ne peut pas déterminer si une MFC est active ou non.
- La MFC est prioritaire sur la macro

Dans mon exemple, je ne travaille que par MFC
D6 n'a qu'une condition : (Condition cellule A) ET (Condition cellule B), en une seule formule.

Si j'ai bien compris, sous 2007 et suivantes, le nombre de MFC est limité à 63.
Sous 2003 on ne peut en avoir que 3
On peut en avoir plus en passant par des macros, mais c'est plus complexe à mettre en œuvre, et il n'y a pas de retour à l'état précédent.

Pour ce que je comprend de ton cas : on va faire un exemple simple.
cellule A1, B1, C1 en vert
Si A1>0 => fond A1 = blanc
Si B1>0 => fond B1 = Bleu
Si fond A1 = blanc ET fond B1 = Bleu, on colorie C1 en rouge => ça, excel ne sait pas faire. Par contre il sait faire (A1>0) ET (B1>0) => fond C1 = rouge

Une condition est fausse si sa valeur est nulle (ou FAUX ou False)
Une condition est vraie si sa valeur n'est pas fausse (Ou VRAI ou True)

Le problème de la réalisation d'une MFC et que passer par le menu, faire la MFC, ressortir, la tester... c'est lourd.
Mais ce qu'on a besoin, c'est le résultat d'une formule qui donne 0 ou différent de 0
Formule A2 : =(A1>0)
A1 = 0, -1 ou -2 => A2=FAUX(false)
A1 = 1, 0,1 ou 10 => A2=VRAI(True) (idem pour B)

Formule C2 : =(A1>0)*(B1>0)
Comme Excel est pas trop bête, si les valeurs booléennes sont dans une opération, il les transforme en nombres. On se limite à 0 ou 1
Si A1=0, quelque soit B1, C2=0
Si B1=0, quelque soit A1, C2=0
si A1=1 et B1=1, alors C2=1

Il suffit de faire un copier/coller des formules de A2, B2 et C2 dans les MFC de A1, B1 et C1 en condition 1, case 2, avec la case 1 "la formule est" et ça marche.
S1 A1, avec sa MFC est Blanc, si tu changes sa couleur en jaune, il apparaît toujours en blanc => si c'est une macro qui fait le changement de couleur, ça donnera le même résultat.
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
4
Affichages
642
Réponses
7
Affichages
362
Réponses
4
Affichages
155
Réponses
5
Affichages
777
Retour