[Excel]Mise en forme en fonction de 3 valeurs
Résolu/Fermé
A voir également:
- [Excel]Mise en forme en fonction de 3 valeurs
- Mise en forme conditionnelle excel - Guide
- Excel fonction si et - Guide
- Mise en forme tableau word - Guide
- Liste déroulante excel - Guide
- Fonction moyenne excel - Guide
7 réponses
ccm81
Messages postés
10899
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 octobre 2024
2 422
19 juin 2012 à 12:13
19 juin 2012 à 12:13
bonjour
j'ai un peu de mal à comprendre ton problème
s'agit il de colorer les lettres de ton tableau? si oui comment sont "calculées" les couleurs à partir de têtes de lignes/colonnes du tableau
sinon, peux tu envoyer la partie de ton fichier sur cjoint.com et joindre le lien obtenu à ton prochain message avec queques explications sur ce que tu veux obtenir et à partir de quoi.
bonne suite
j'ai un peu de mal à comprendre ton problème
s'agit il de colorer les lettres de ton tableau? si oui comment sont "calculées" les couleurs à partir de têtes de lignes/colonnes du tableau
sinon, peux tu envoyer la partie de ton fichier sur cjoint.com et joindre le lien obtenu à ton prochain message avec queques explications sur ce que tu veux obtenir et à partir de quoi.
bonne suite
ccm81
Messages postés
10899
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 octobre 2024
2 422
19 juin 2012 à 14:23
19 juin 2012 à 14:23
re
une solution avec macro
pour voir le code : Clic-droit sur l'onglet de la feuille/Visualiser le code
https://www.cjoint.com/?0FtovUGtoaI
bonne suite
une solution avec macro
pour voir le code : Clic-droit sur l'onglet de la feuille/Visualiser le code
https://www.cjoint.com/?0FtovUGtoaI
bonne suite
ccm81
Messages postés
10899
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 octobre 2024
2 422
19 juin 2012 à 15:05
19 juin 2012 à 15:05
re
une macro équivalente un peu moins "lourde"
bonne suite
une macro équivalente un peu moins "lourde"
Private Sub Worksheet_Change(ByVal Target As Range) Dim li As Long, co As Long, v As String, a As Long, b As Long, coul If Not Intersect(Target, Union(Range("i"), Range("a"), Range("b"))) Is Nothing Then v = Range("vf").Value a = Range("a").Value b = Range("b").Value li = 3 - Log(b) / Log(10) co = 3 - Log(a) / Log(10) Select Case v Case "x" coul = Range("tabx").Cells(li, co).Interior.ColorIndex Case "y" coul = Range("taby").Cells(li, co).Interior.ColorIndex Case "z" coul = Range("tabz").Cells(li, co).Interior.ColorIndex End Select Range("vf").Interior.ColorIndex = coul End If End Sub
bonne suite
Merci pour ta rapidité.
Désolé, j'ai mis "N7" alors que c'est "N8".
Comme je l'ai signalé plus haut, j'aimerais éviter les macros pour la simple et bonne raison qu'il faut que je la comprenne, étant donné que ce n'est bien sûr pas le tableau réel (les valeurs sont plus grandes, et je ne suis pas limité à 1, 10 et 100, elles peuvent être à 68 par exemple).
Ici, je n'ai demandé que la démarche pour pouvoir l'adapter à mon travail d'origine.
Si vraiment, je n'ai pas le choix, je prendrais ta méthode.
Merci
Désolé, j'ai mis "N7" alors que c'est "N8".
Comme je l'ai signalé plus haut, j'aimerais éviter les macros pour la simple et bonne raison qu'il faut que je la comprenne, étant donné que ce n'est bien sûr pas le tableau réel (les valeurs sont plus grandes, et je ne suis pas limité à 1, 10 et 100, elles peuvent être à 68 par exemple).
Ici, je n'ai demandé que la démarche pour pouvoir l'adapter à mon travail d'origine.
Si vraiment, je n'ai pas le choix, je prendrais ta méthode.
Merci
Raymond PENTIER
Messages postés
58712
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
2 novembre 2024
17 227
19 juin 2012 à 17:41
19 juin 2012 à 17:41
Bonjour à tous.
Non sans mal, j'ai une proposition sans macro, avec juste deux règles de mise en forme conditionnelle.
* D'abord remplissage de N8 avec la couleur bleu-vert.
* Première règle pour N8 "Utiliser une formule pour ..." avec la formule
=OU(ET($N$8="x";MOD($N$3+$N$4;2)=0);ET($N$8="y";$N$3+$N$4>101))
et le format remplissage rouge.
* Seconde règle pour N8 "Utiliser une formule pour ..." avec la formule
=OU(ET($N$8="x";MOD($N$3+$N$4;10)=1);ET($N$8="y";OU($N$3+$N$4= 101;$N$3+$N$4=20));ET($N$8="z";$N$3+$N$4>101))
et le format remplissage orange.
Non sans mal, j'ai une proposition sans macro, avec juste deux règles de mise en forme conditionnelle.
* D'abord remplissage de N8 avec la couleur bleu-vert.
* Première règle pour N8 "Utiliser une formule pour ..." avec la formule
=OU(ET($N$8="x";MOD($N$3+$N$4;2)=0);ET($N$8="y";$N$3+$N$4>101))
et le format remplissage rouge.
* Seconde règle pour N8 "Utiliser une formule pour ..." avec la formule
=OU(ET($N$8="x";MOD($N$3+$N$4;10)=1);ET($N$8="y";OU($N$3+$N$4= 101;$N$3+$N$4=20));ET($N$8="z";$N$3+$N$4>101))
et le format remplissage orange.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Raymond PENTIER
Messages postés
58712
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
2 novembre 2024
17 227
19 juin 2012 à 18:06
19 juin 2012 à 18:06
Je signale au passage une inversion dans les signes > et < (tableau P1:Q5)
Comme l'opération $N$3+$N$4 revient souvent dans les formules, on peut l'effectuer dans la cellule N5 que l'on nommera A²B.
D'autre part il est superflu de conserver les références bloquées avec $, puisque seule la cellule N8 est concernée.
Ainsi les formules des règles de MFC s'écrivent plus simplement
=OU(ET(N8="x";MOD(A²B;2)=0);ET(N8="y";A²B>101))
et
=OU(ET(N8="x";MOD(A²B;10)=1);ET(N8="y";OU(A²B= 101;A²B=20));ET(N8="z";A²B>101))
https://www.cjoint.com/?BFtseYJ56M6
Cordialement.
Comme l'opération $N$3+$N$4 revient souvent dans les formules, on peut l'effectuer dans la cellule N5 que l'on nommera A²B.
D'autre part il est superflu de conserver les références bloquées avec $, puisque seule la cellule N8 est concernée.
Ainsi les formules des règles de MFC s'écrivent plus simplement
=OU(ET(N8="x";MOD(A²B;2)=0);ET(N8="y";A²B>101))
et
=OU(ET(N8="x";MOD(A²B;10)=1);ET(N8="y";OU(A²B= 101;A²B=20));ET(N8="z";A²B>101))
https://www.cjoint.com/?BFtseYJ56M6
Cordialement.
Merci pour la rapidité.de réponse.
Effectivement, j'ai inverser les signes ">" et "<". Autant pour moi.
J'aime bien cette méthode, en plus j'ai bien l'impression que je n'ai pas besoin de reproduire le tableau d'origine. La formule sera insérer dans plusieurs cellules avec différentes références, donc pas besoin des "$".
Par contre, il y a un soucis sur une seule case: Indice: 100, Valeur A: 1, Valeur B: 1.
La cellule devrait être en vert, alors qu'elle est en rouge.
Je vais essayer de comprendre ça.
Et si les valeurs se trouvent entre 1 et 10, par exemple, est-ce que ça marcherai?
Merci.
Effectivement, j'ai inverser les signes ">" et "<". Autant pour moi.
J'aime bien cette méthode, en plus j'ai bien l'impression que je n'ai pas besoin de reproduire le tableau d'origine. La formule sera insérer dans plusieurs cellules avec différentes références, donc pas besoin des "$".
Par contre, il y a un soucis sur une seule case: Indice: 100, Valeur A: 1, Valeur B: 1.
La cellule devrait être en vert, alors qu'elle est en rouge.
Je vais essayer de comprendre ça.
Et si les valeurs se trouvent entre 1 et 10, par exemple, est-ce que ça marcherai?
Merci.
ccm81
Messages postés
10899
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 octobre 2024
2 422
Modifié par ccm81 le 20/06/2012 à 10:46
Modifié par ccm81 le 20/06/2012 à 10:46
bonjour
je me suis inspiré de, et modifié la proposition de raymond (cordiales salutations) pour ton dernier cas = = 100, a = 1, b = 1
1. j'ai nommé
N8 > vf
N2 > i
N3 > a
N4 > b
2. par défaut la cellule vf est verte
3. première formule
=OU(ET(vf="x";a+b>=20);ET(vf="y";a+b>=110)) rouge
4. deuxième formule
=OU(ET(vf="x";a+b>=11);ET(vf="y";a+b>= 20);ET(vf="z";a+b>=110)) orange
pour ce qui est des valeurs autres que 1, 10, 100, il faut te faudra définir les bornes des intervalles pour chaque cas
bonne suite
je me suis inspiré de, et modifié la proposition de raymond (cordiales salutations) pour ton dernier cas = = 100, a = 1, b = 1
1. j'ai nommé
N8 > vf
N2 > i
N3 > a
N4 > b
2. par défaut la cellule vf est verte
3. première formule
=OU(ET(vf="x";a+b>=20);ET(vf="y";a+b>=110)) rouge
4. deuxième formule
=OU(ET(vf="x";a+b>=11);ET(vf="y";a+b>= 20);ET(vf="z";a+b>=110)) orange
pour ce qui est des valeurs autres que 1, 10, 100, il faut te faudra définir les bornes des intervalles pour chaque cas
bonne suite
Merci à vous deux.
J'ai enfin réussi en m'inspirant de vos remarques.
En même temps, je me dis: "pourquoi je n'y ai pas pensé plus tôt?"
J'ai tout simplement pris chaque cas de rouge, de orange et de vert (donc en 3 "mise en forme conditionnelle"). Certe, c'est 3 formules plutôt longue mais ça fonctionne.
Voilà le lien:
http://cjoint.com/?BFuldYVviIq
De plus, j'ai mis les intervalles de valeurs qui se rapprochent un peu plus de mon travail.
Enfin, les formules en "L11", "L13" et "L15" sont les mises en formes conditionnelles de "N8" (c'est plus facile à corriger).
Merci encore.
PS: Maintenant cela compris, il faut que je l'applique à ma base de données de 1300 lignes ^_^.
J'ai enfin réussi en m'inspirant de vos remarques.
En même temps, je me dis: "pourquoi je n'y ai pas pensé plus tôt?"
J'ai tout simplement pris chaque cas de rouge, de orange et de vert (donc en 3 "mise en forme conditionnelle"). Certe, c'est 3 formules plutôt longue mais ça fonctionne.
Voilà le lien:
http://cjoint.com/?BFuldYVviIq
De plus, j'ai mis les intervalles de valeurs qui se rapprochent un peu plus de mon travail.
Enfin, les formules en "L11", "L13" et "L15" sont les mises en formes conditionnelles de "N8" (c'est plus facile à corriger).
Merci encore.
PS: Maintenant cela compris, il faut que je l'applique à ma base de données de 1300 lignes ^_^.
Modifié par zalles77 le 19/06/2012 à 12:45
Je ne connaissais pas Cjoint.com, très pratique.
Voilà le tableau (enfin le lien):
http://cjoint.com/?BFtmNJyWm8m
Peut-être est-ce un peu plus clair?
Merci de ta réponse si rapide