Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forums MacBidouille _ Autres Logiciels _ Colorer une ligne en fonction du contenu d'une cellule dans Excel 2004 [Résolu]

Écrit par : Captain Bumper 13 Jun 2008, 13:19

Bonjour à tous,

Pour ma thèse, j'ai des cas cliniques à compiler. J'ai commencé à les placer dans un tableau Excel (version 2004) avec 13 colonnes.
J'aimerais colorer le fond de la ligne d'une certaine couleur en fonction de ce que contient la 3e colonne, et ceci, pour chaque ligne.
En fait, si la ligne contient (et non pas "est égale à") certains mot clés, il faut colorier de telle ou telle couleur.

Dans ce genre là

Si case3 contient "XXXX" alors
colorer ligne en jaune;
Sinon, si case 3 contient "YYYY" alors
colorer ligne en vert;
Sinon colorer ligne en orange.

Est-ce possible de faire ça avec Excel 2004 et si oui, comment? La mise en forme conditionnelle ne me donne pas vraiment satisfaction, car elle formate la cellule elle-même et ne donne pas accès à des formules "contient"...

Écrit par : Aliboron 13 Jun 2008, 13:28

CITATION(Captain Bumper @ 13 Jun 2008, 14:19) [snapback]2697295[/snapback]
Est-ce possible de faire ça avec Excel 2004 et si oui, comment?

Oui, bien sûr, c'est ce pourtant bien qu'on appelle une "Mise en forme conditionnelle" !

En gros :
- tu sélectionnes la première cellule concernée, mettons C2
- tu vas dans "Format" > "Mise en forme conditionnelle..."
- tu mets la formule est : =TROUVE("xxx";$C2) et tu choisis le Format... qui te convient (fond jaune, par ex.)
- tu cliques sur "Ajouter >>" ce qui te rajoute une ligne
- même chose : la formule est : =TROUVE("yyy";$C2) et tu choisis le nouveau Format... qui te convient (fond vert cette fois, par ex.)
- une fois fini, tu valides puis tu copies la cellule
- tu sélectionnes toute la plage concernée et tu fais "Collage spécial..." et tu colles le format.


Note : le $C fait que c'est toujours la colonne C qui sera prise en référence (mais la ligne reste variable, c'est logique). Pour le reste, la formule TROUVE(), c'est du classique (il ne faut pas s'en priver dans les mises en forme conditionnelles) wink.gif

Écrit par : Captain Bumper 13 Jun 2008, 15:14

OK merc! smile.gif Mais comment je définis le "sinon"? Il m'a colorier ce que je cherchais, mais pour les cellules ne correspondant pas aux critères, je voudrais assigner un format aussi! J'ai essayé en mettant (à tout hasard) :

<>TROUVE("XXXX";C2) AND <>TROUVE("YYYY";C2)

mais ça ne fonctionne pas. Dans l'aide d'Excel, à la fonction TROUVE, il n'y a rien sur la possibilité de gérer les cellules qui ne contiennent pas ce qu'on cherche...

Écrit par : Aliboron 13 Jun 2008, 15:49

CITATION(Captain Bumper @ 13 Jun 2008, 16:14) [snapback]2697417[/snapback]
Mais comment je définis le "sinon" ?

Le sinon, c'est par défaut. La mise en forme conditionnelle ci-dessus peut s'écriçre :
- si la cellule C de la rangée courante contient la chaîne "xxx"
- alors la cellule a un fond jaune
- sinon - si la cellule C de la rangée courante contient la chaîne "yyy"
---------- alors la cellule a un fond vert
---------- sinon rien.

Autrement dit, si aucune des conditions n'est remplie, on reste sur le format initial.


Maintenant, si tu veux (et si j'ai bien compris ce que tu veux faire), tu peux rajouter une condition pour les cas où il y a quelque chose dans la cellule qui doit se distinguer du format initial lorsque la cellule C ne contient aucune des deux chaînes. C'est alors une troisième condition, que tu peux écrire =ESTERREUR(TROUVE("xxx";$C2))*ESTERREUR(TROUVE("yyy";$C2)) et tu lui attacheras un troisième format.

[MàJ] Bien entendu, on peut aussi mettre une condition pour s'assurer que ça reste blanc lorsque la cellule est vide, et ça devient alors =ET(ESTERREUR(TROUVE("xxx";$C2))*ESTERREUR(TROUVE("yyy";$C2));$C2<>"")

[MàJ de MàJ] Un peu pris par l'élan, je m'étais laissé emporter : la troisième condition nécessaire et suffisante dans ce cas est uniquement =$C2<>"". Le test avec ESTERREUR sur les deux chaînes est inutile puisque, si l'une des deux conditions initiales est remplie on n'arrivera pas jusqu'à cette troisième condition...

Attention tout de même à la limite des trois conditions possibles. Si tu veux plus de trois conditions, il te faudra passer par une macro (le mieux étant alors de passer par une macro événementielle, ce qui rend la chose tout à fait transparente pour l'utilisateur).

Écrit par : Captain Bumper 13 Jun 2008, 17:34

Merci, c'est exactement ça que je voulais faire! smile.gif

Écrit par : brenda 14 Jun 2008, 09:01

Merci de ces explications très claires,

C'est un truc que je cherchais à mettre en oeuvre il y a quelques jours, et je n'y arrivais pas.

cdlt

Emmanuel

Écrit par : phenelid 18 Dec 2008, 16:00

Bonjour,
Je viens un peu en retard, j'espère que Aliboron sera toujours là !

J'ai bien utilisé la formule =TROUVE("x";$C2)
Cependant, j'aimerais que les lignes contenant x dans les colonnes G H I et J soient toutes vertes.
Comment faire cela en une seule formule ?
J'ai essayé =OU(TROUVE("x";$G2);TROUVE("x";$H2)...) mais ça ne fonctionne pas...

Merci pour votre aide.

Delphine

Écrit par : Aliboron 18 Dec 2008, 17:35

Bonjour et bienvenue sur les forums de MacBidouille !

CITATION(phenelid @ 18 Dec 2008, 16:00) [snapback]2885987[/snapback]
j'aimerais que les lignes contenant x dans les colonnes G H I et J soient toutes vertes.
Comment faire cela en une seule formule ?
J'ai essayé =OU(TROUVE("x";$G2);TROUVE("x";$H2)...) mais ça ne fonctionne pas...

Attention, dans ta question tu dis "et", dans ta formule, tu dis "ou". On va donc partir du principe que tu veux bien dire qu'une des quatre cellules contient la valeur cherchée (donc "ou"). En quel cas, on peut écrire :
=NON(ESTERREUR(TROUVE("x";$G2))*ESTERREUR(TROUVE("x";$H2))*ESTERREUR(TROUVE("x";$I2))*ESTERREUR(TROUVE("x";$J2)))

Tout ça parce que, si une seule des cellules ne contient pas la valeur cherchée, on obtient une erreur (et pas la réponse "FAUX" équivalente à 0).
Après, ça dépend un peu des circonstances aussi. Si par exemple ce ne doit pas nécessairement être x mais que ça peut être n'importe quel caractère, tu peux te servir plutôt de la fonction NBCAR() qui, elle, retourne la valeur 0 lorsque la cellule est vide. Et dans ce cas là, la formule qu'on peut utiliser est plus proche de celle que tu as utilisée :
=OU(NBCAR($G2);NBCAR($H2);NBCAR($I2);NBCAR($J2))

Par contre, si toutes les cellules contiennent "x" (mais seulement dans ce cas-là) alors la fonction que tu utilises marche : paradoxalement (pour les raisons vues plus haut, ta formule marche dans le cas où il faut que TOUTES les cellules contiennent la valeur "x" (et on est donc dans le contexte "et" cette fois) !

Voilà, voilà wink.gif

Écrit par : phenelid 19 Dec 2008, 10:45

CITATION(Aliboron @ 18 Dec 2008, 17:35) [snapback]2886083[/snapback]

=NON(ESTERREUR(TROUVE("x";$G2))*ESTERREUR(TROUVE("x";$H2))*ESTERREUR(TROUVE("x";$I2))*ESTERREUR(TROUVE("x";$J2)))[/b]


Bonjour, je viens d'entrer cette formule.
Ca fonctionne... mais ça colorie la ligne en dessous de celle qui contient le x !
Mon tableau commence à la ligne 3 (lignes 1 et 2 utilisées pour les entêtes). C'est peut-être une source d'erreur ?

Cordialement.
D.


Écrit par : Aliboron 19 Dec 2008, 11:53

CITATION(phenelid @ 19 Dec 2008, 10:45) [snapback]2886617[/snapback]
Mon tableau commence à la ligne 3 (lignes 1 et 2 utilisées pour les entêtes). C'est peut-être une source d'erreur ?

Ben oui, mais c'est toi aussi qui a donné l'exemple avec la deuxième ligne wink.gif

Si ça doit se baser sur la 3e ligne, il faut évidemment que la formule se réfère aux cellules de la même ligne ($G3 au lieu de $G2, etc.)

Écrit par : belamelle 29 Jan 2009, 09:22

Bonjour tout le monde,

Comment colorier une ligne si une des cellule contient une date

Merci de votre aide

Écrit par : Aliboron 29 Jan 2009, 12:15

Citation (belamelle @ 29 Jan 2009, 09:22) *
Comment colorier une ligne si une des cellules contient une date

Merci de donner quelques précisions. Sur le contexte (versions d'Excel, etc.) mais aussi sur la situation précise (un exemple succinct est généralement le bienvenu).

Si c'est toujours la cellule de la même colonne qui peut contenir une date ou être vide dans chaque ligne (ex : A2, A2, etc.), il suffit de s'assurer qu'elle n'est pas vide (="A2"<>"").

On ne peut toujours tester directement le format d'une cellule avec la fonction "CELLULE("format";A2) mais ce n'est pas forcément gagné (ni gagnable) dans la mesure où le format date va rester même si la cellule est vide (et même si on y met du texte).

Dans d'autres cas, le plus simple consiste peut-être à créer une colonne supplémentaire contenant un test. Puis à faire porter la mise en forme conditionnelle sur cette colonne (éventuellement masquée). Bref, pas mal de choses sont possibles... en fonction du contexte !

Écrit par : belamelle 29 Jan 2009, 15:28

Oui c'est vrai que j'aurais dû vous donner un exemple

Alors en fait là où je travaille, on gère des dossiers papier qui sont ensuite gérés par un tableau excel.
Je m'explique on a une colonne date de réception du dossier, date d'évaluation et on a une colonne dossier complet (où on note la date).

Je souhaiterais mettre toute la ligne en rose quand le dossier est complet et rajouter une colonne dans laquelle je mettrais a pour "accepté" et donc changer la couleur en vert ou r pour "refuse" et la changer en rouge.

Résumé si colonne "dossier complet" non vide = rose
si colonne "acceptation ou refus" -> si "a" = vert
-> si "r" = rouge

Excusez moi si je m'embrouille un peu

Et merci de votre aide

En fait c'est la version 2007

Écrit par : Aliboron 29 Jan 2009, 16:54

Citation (belamelle @ 29 Jan 2009, 15:28) *
En fait c'est la version 2007

Je ne crois pas. Sur Mac, c'est soit 2004, soit 2008 wink.gif Mais bon, dans le cas présent, ça ne devrait pas avoir d'importance.

Alors, en résumé, mettons que dans la colonne E on n'a rien tant que le dossier n'est pas complet et on a la date une fois qu'il est complet. Dans la colonne F, on n'a rien tant qu'on n'a pas la décision, puis on a "a" en cas d'acceptation ou "r" en cas de refus. C'est bien ça ? On va aussi supposer que les données se trouvent sur les lignes à partir de la deuxième, la première étant utilisée pour les titres de colonnes (tout ça est à adapter en fonction de la situation réelle, bien sûr).

Alors, il faut donc faire une mise en forme conditionnelle qui tient compte des éléments indiqués :
1 - si Fx est vide et Ex n'est pas vide, alors on colorie en rose
2 - si Fx contient "a" alors on colorie en vert
3 - si Fx contient "r" alors on colorie en rouge

Allons-y :

On sélectionne dans la ligne 2 toutes les cellules auxquelles on veut appliquer la formule (par ex. la plage "A2:F2"), et on va dans "Format" > "Mise en forme conditionnelle..."

1 - Par le menu déroulant, on choisit "La formule est" et on tape =ET($F2="";$E2<>"") puis on choisit la couleur rose via le bouton "Format..."

2 - On ajoute une deuxième condition en cliquant sur le bouton "Ajouter..." et on entre cette fois la formule =$F2="a" et on choisit la couleur verte via le bouton "Format..."

3 - On ajoute ensuite une troisième condition (de nouveau "Ajouter...") avec la formule =$F2="r" et on choisit la couleur rouge.

Un clic sur le bouton "OK" pour finir et voilà. Il suffit maintenant de copier ces cellules de la ligne 2 (par ex. la plage "A2:F2") et de faire un collage spécial (menu "Edition" > "Collage spécial...") en choisissant de ne coller que le "Format" sur les cellules correspondantes de toutes les lignes voulues (par ex. la plage "A3:F250").

C'est fini et ça marche (en principe) ! wink.gif



Tiens, au passage, petite astuce pratique : on peut facilement saisir la date du jour dans une cellule avec le raccourci clavier "Commande-;" (commande-point-virgule).

Écrit par : Jack the best 29 Jan 2009, 17:48

Toujours très claires tes explications ! thumb.gif
Quand j'étais encore en activité, j'aurais aimé connaître les réponses apportées par ce topic !

Écrit par : belamelle 30 Jan 2009, 10:47

biggrin.gif MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI

ça fonctionne

Bonne journée à Tous biggrin.gif laugh.gif laugh.gif

Écrit par : Coco_O 18 May 2011, 10:58

Bonjour Aliboron,

Tes explications sont vraiment très claires et j'aurais besoin de tes lumières si tu passes par là biggrin.gif (le message est un peu vieux, mais je tente!)

Sur Excel 2007, je voudrais créer un format conditionnel d'une cellule d'après deux conditions. Je m'explique:

J'ai une colonne J dont la valeur est formatée pour spécifier '%' ou 'valeur' (c'est des chaines de caractères)
Mes colonnes H à P sont des % ou des valeurs.
Ma colonne Q est la somme des colonnes B à E.

Voici la formule que je veux implémenter dans mes cellule de la colonne Q:
Si dans ma colonne J j'ai sélectionné '%' et que la somme présente dans Q est différente de '100%' alors je veux colorer ma cellule Q en rouge.

Peux-tu m'éclairer sur ce que je dois faire? Mon Excel est en Anglais, mais je me renseignerai pour la traduction des fonctions wink.gif
Encore merci !

PS: J'ai tenté d'écrire: =AND($J9="%";$Q9<>"100%") mais ca ne marche pas car Q9 est rouge malgrés le fait que j'ai un 100% dedans et un "%" dans J9...

Écrit par : Coco_O 18 May 2011, 13:16

Apparemment, ca vient de la deuxieme partie de ma formule où je veux vérifier que ma cellule est différente de 100%. Il colore tout. Je pense qu'il ne reconnait pas le "100%" comme un pourcentage.

Écrit par : Aliboron 18 May 2011, 15:50

Bonjour et bienvenue sur les forums de MacGénération !


Citation (Coco_O @ 18 May 2011, 14:16) *
Sur Excel 2007, je voudrais créer un format conditionnel d'une cellule.../...

A priori, Excel 2007 est une version pour Windows, il doit y avoir confusion, mais ça n'a pas vraiment d'importance dans le cas présent.

Citation (Coco_O @ 18 May 2011, 14:16) *
Apparemment, ca vient de la deuxieme partie de ma formule où je veux vérifier que ma cellule est différente de 100%. Il colore tout. Je pense qu'il ne reconnait pas le "100%" comme un pourcentage.

Très probablement. En mettant des guillemets autour de 100%, tu compares le contenu de la cellule à une chaîne et non pas à une valeur. Or, puisque ta cellule est une somme de pourcentages, elle contient nécessairement une valeur et ne peut jamais contenir la chaîne "100%". Il est donc tout à fait logique que, cette condition ne pouvant jamais être remplie, l'affichage soit toujours en rouge.

Le plus simple est d'écrire ta formule ainsi : =AND($J9="%";$Q9<>1) (ben oui, 100%, soit 100 divisé par 100, ça fait 1)
Bien sûr, tu peux aussi écrire =AND($J9="%";$Q9<>100%) puisque c'est équivalent mais il est généralement plus clair de travailler directement avec le nombre (la preuve) et de n'utiliser le pourcentage qu'au niveau de l'affichage. Enfin, bon, ce sont là des manies, sûrement... wink.gif

En tout cas, en adaptant ta formule selon une des deux possibilités, ça devrait fonctionner sans souci particulier...

Écrit par : jack_bf2 18 May 2011, 16:41

Citation (Aliboron @ 18 May 2011, 16:50) *
Bonjour et bienvenue sur les forums de MacGénération !

Rhôoo! biggrin.gif biggrin.gif

Écrit par : Coco_O 18 May 2011, 17:43

Vraiment merci beaucoup!
J'ai trouvé la solution quelques minutes avant ta réponse et je me suis rendu compte par hasard qu'il fallait retiré les "" autour du 100% !
Cependant je me pose une deuxième question (le mec qui profite, bouh!)

Je voudrais rajouter la condition suivante:

Si J9 = "valeur" alors copier le contenu de G9 dans Q9.

Est-ce correct si je fais quelque chose du genre:

=OR(AND($J9="%";$Q9<>1);AND($J9="valeur";$G9=$Q9))

Merci de ton aide!

EDIT: C'est stupide comme question car ca ne concerne plus le fait de colorer la cellule. Ceci étant dit c'est une formule que je dois appliquer sur la même cellule Q9, non?

Écrit par : Aliboron 18 May 2011, 22:55

Citation (Coco_O @ 18 May 2011, 18:43) *
Je voudrais rajouter la condition suivante:

Si J9 = "valeur" alors copier le contenu de G9 dans Q9.

Est-ce correct si je fais quelque chose du genre :

=OR(AND($J9="%";$Q9<>1);AND($J9="valeur";$G9=$Q9))

Attention, il s'agit là de choses tout à fait différentes (comme tu l'as souligné toi-même). Dans le premier cas, il s'agit d'une mise en forme conditionnelle, utilisant un dispositif prévu justement pour ça. Dans le deuxième cas, il s'agit d'agir sur le contenu d'une cellule, ce qui n'a plus rien à voir.

Premièrement, on n'a pas de moyen d'agir directement sur le contenu d'une cellule par une formule située dans une autre. On peut le faire par macro, mais c'est autre chose (et inutile dans un cas comme celui-là). Si tu veux que le contenu de la cellule Q9 dépende du contenu de la cellule J9, c'est directement dans la cellule concernée (Q9, donc) que tu peux faire quelque chose. En l'occurrence y mettre une formule de type =IF($J9="valeur";G9;"")

Si on revient à ton premier besoin (avoir en Q9 la somme des pourcentages lorsque J9 contient la chaîne "%") tu dois donc combiner les deux formules dans ta cellule et faire quelque chose du genre =IF($J9="valeur";G9;IF($J9="%";SUM($B9:$E9);"")).

En ne perdant pas de vue que ta cellule sera en rouge lorsque la cellule J9 contiendra autre chose que "%", il te faudra donc probablement mettre d'abord une condition pour le cas où cette cellule contient "valeur".

Écrit par : Coco_O 19 May 2011, 08:49

Vraiment merci biggrin.gif

Un vrai prof d'excel!
La dernière question que je me pose est la suivante.
Si j'ai un "%" il va me calculer une somme et me placer un pourcentage dans ma case Q9. Or, si j'ai un "Valeur", c'est un nombre que je veux et il me l'affiche en pourcentage, étant donné le formatage de la cellule. Peut on faire dépendre le formatage de la cellule Q9 en fonction du type de valeur qu'il y aura dedans "% ou nombre entier).

Merci beaucou Aliboron.

Écrit par : Aliboron 19 May 2011, 10:51

Citation (Coco_O @ 19 May 2011, 09:49) *
Peut on faire dépendre le formatage de la cellule Q9 en fonction du type de valeur qu'il y aura dedans "% ou nombre entier).

Oui, on peut faire pas mal de choses avec les formats numériques personnalisés. Petite illustration :
- tu sélectionnes ta cellule Q9
- tu vas dans "Format" > "Cellule..." > "Nombre" > "Personnalisé"
- comme "Type", tu saisis : [<=1]0,0%;0,00
- tu peux constater que, dans la cellule Q9, l'affichage se fait en % si la valeur est inférieure ou égale à 1, et se fait avec deux décimales pour toutes les valeurs plus grandes.

C'est bien sûr à adapter en fonction de tes besoins précis. les conditions qu'on met entre crochets ([<=1] dans l'exemple) s'exécutent sur le même principe que dans une fonction "SI()". En gros (et très approximativement), on pourrait lire ça comme SI(Q9<=1;format "0,00%";format "0,00"), ce qui signifie qu'on peut les chaîner, sous réserve d'avoir un enchaînement logique.


[MàJ] : on peut trouver quelques détails sur les personnalisations poussées http://jeannot45.developpez.com/articles/excel/formatspersonnalises/#LIII-D, en particulier le paragraphe "Paramétrage de la condition" (juste après les couleurs). Tout le reste de la page est intéressant (je ne suis toutefois pas certain que toutes les indications peuvent s'appliquer aux versions sur Mac - mais pour la plupart, c'est oui).

Écrit par : Coco_O 19 May 2011, 13:23

J'ai réussi à le gérer en ajoutant une mise en forme conditionnelle. Il faut faire attention à bien spécifier les deux possilibilités, sinon ca ne fonctionne pas:
=$J9="Valeur" puis format --> Nombre
=$J9="%" puis format --> Pourcentage

Encore merci pour ton aide, j'espère que notre discussion aidera d'autres personnes!

Écrit par : Aliboron 19 May 2011, 14:06

Citation (Coco_O @ 19 May 2011, 14:23) *
J'ai réussi à le gérer en ajoutant une mise en forme conditionnelle.

Oui, mais dans ce cas, tu perds la couleur rouge en fonction de la somme - à moins de faire des combinaisons de conditions, bien sûr...

Écrit par : Coco_O 19 May 2011, 14:39

D'ailleurs je me suis trompé ca ne fonctionne pas. Mes cellules restent en pourcentage par défaut... Je suis donc preneur d'une suggestion tongue.gif !

EDIT: J'ai trouvé la solution en mettant dans la mise en forme conditionnelle, le format 'personnalisé':
#" %"

EDIT 2: En fait non, je galère biggrin.gif

Écrit par : Snoopylagomme 30 Oct 2012, 03:01

Dans la version 2003, comment faire pour mettre plus de trois mise en forme? J'ai 4 secteurs nord, sud, est et ouest. J'aimerais savoir comment faire pour qu'en fonction du secteur les lignes soient de couleurs différentes? Exemple bleu pour sud, rouge pour nord, jaune pour est et vert pour ouest. Avec la mise en forme conditionelle je ne peux qu'en faire 3... Merci énormément pour votre aide!!

Écrit par : Aliboron 30 Oct 2012, 07:36

Citation (Snoopylagomme @ 30 Oct 2012, 03:01) *
Dans la version 2003, comment faire pour mettre plus de trois mise en forme ?

Il n'existe pas de version 2003 pour Mac.

- S'il s'agit bien de la version 2004, il faut ruser et passer par une boucle macro. Voir par exemple http://www.excelabo.net/trucs/mefc_a_12_couleurs, qui doit fonctionner sans souci sur Excel 2004 (et qu'il faudra adapter un peu à ton besoin exact).

- S'il s'agit d'Excel 2008, ça va être compliqué (pas de VBA). À part mettre une couleur par défaut, ce qui permet d'en avoir quatre au total, je ne vois pas de solution. Mais bon Excel 2008, de toute façon…

- S'il s'agit d'Excel 2011, pas de souci, on peut mettre quatre (et plus) conditions différentes dans la mise en forme conditionnelle...

Écrit par : Tweek70 8 Mar 2013, 12:00

Bonjour,

Après avoir fait de nombreuses recherches, je n'ai pas trouver de solution à mon problème avec les fonctions Excel basiques (étant donné que je suis bloqué par le nombre de conditions avec la forme conditionnelle).

Je m'explique: je souhaite colorer les cellules sur une même ligne dès qu'un résultat apparait. Les 18 premieres cellules après ce résultat seront d'une couleure, les 3,2 et 5 d'après seront d'une autre( donc 4 couleurs en tout).

Par exemple: En B1 j'ai mon résultat (une lettre), en C2 jusqu'en T2 les cellules deviennent bleues; de U2 à W2 les cellules deviennent jaunes;de X2 à Y2 les cellules deviennent vertes et de Z2 à AD2 les cellules deviennent rouge. Je precise que le résulat peut apparaitre nimporte où sur la ligne.

Merci d'avance pour votre aide

Écrit par : Aliboron 8 Mar 2013, 18:27

Citation (Tweek70 @ 8 Mar 2013, 12:00) *
Je m'explique: je souhaite colorer les cellules sur une même ligne dès qu'un résultat apparait. Les 18 premières cellules après ce résultat seront d'une couleur, les 3, 2 et 5 d'après seront d'une autre( donc 4 couleurs en tout).
Par exemple: En B1 j'ai mon résultat (une lettre), en C2 jusqu'en T2 les cellules deviennent bleues; de U2 à W2 les cellules deviennent jaunes;de X2 à Y2 les cellules deviennent vertes et de Z2 à AD2 les cellules deviennent rouge. Je précise que le résultat peut apparaitre n'importe où sur la ligne.

De quelle version d'Excel est-il question (ça peut avoir une sacrée importance pour la réponse) ? Qu'est-ce qui te pose exactement problème : tu peux faire un format conditionnel pour le groupe C2:T2, un autre pour U2:W2, un troisième pour pour X2:Y2 et un quatrième pour Z2:AD2. Mis à part le déclenchement, ces formats sont totalement indépendants... unsure.gif

Quelques compléments, éventuellement : Il n'y a qu'une ligne pour laquelle les cellules doivent changer de couleur ? Le résultat est sur une ligne différente, c'est normal ou une faute de frappe ? Quelle est exactement la condition qui doit déclencher le changement de couleur ? La simple "apparition" d'un résultat n'est peut-être pas assez précis comme description : qu'y a-t-il dans la cellule avant que le résultat apparaisse ?

Écrit par : Tweek70 13 Mar 2013, 09:23

J'ai la version 2003 d'Excel donc seulement 3 conditions.
Ce qui me pose problème c'est tout d'abord le problème des 4 couleurs, et ensuite de mettre en forme: dès que "X" apparait alors les cellules suivantes prendront les couleurs définies.

Il n'y a qu'une ligne pour laquelle les cellules doivent changer de couleur. Petite parenthèse : je souhaite appliquer cette formule pour d'autres lignes avec un résultat par ligne.
Le résultat est bien sur la même ligne, faute de frappe.
La condition est l'affichage de la lettre X qui dépend d'une formule que j'ai créé. Si le X ne s'affiche pas alors la case n'affiche rien. J'ai donc un seul X sur toute la ligne.

Écrit par : Aliboron 13 Mar 2013, 14:13

Citation (Tweek70 @ 13 Mar 2013, 09:23) *
J'ai la version 2003 d'Excel donc seulement 3 conditions.

Pour moi, je n'en vois toujours qu'une dans ton exemple, avec quatre mises en forme différentes pour quatre plages différentes. Si je n'ai pas tout compris, merci de m'expliquer.

Alors, en gros :
- en B2 j'ai une formule dont le résultat est éventuellement X (le caractère X)
- je sélectionne la plage C2:T2 et vais dans le menu "Format" > "Mise en forme conditionnelle..."
- dans la partie "Condition" je sélectionne La formule est et dans la plage dédiée je saisis =$B2="X"
- je clique sur le bouton "Format..." et choisis la couleur bleu, puis je valide avec le bouton "OK"
- je sélectionne ensuite la plage U2:W2 et répète exactement les mêmes opérations (sauf la couleur, cette fois jaune)
- je sélectionne ensuite la plage X2:Y2 et répète exactement les mêmes opération (sauf la couleur, cette fois vert)
- je sélectionne ensuite la plage Z2:AD2 et répète exactement les mêmes opérations (sauf la couleur, cette fois rouge)
- Je recopie la ligne complète vers le bas autant que de besoin...

Qu'est-ce qui ne convient pas à ton cas de figure ?

Écrit par : Tweek70 13 Mar 2013, 16:17

Je suis totalement d'accord avec cette solution avec un X dans une cellule fixe.

Mais ici mon X peut s'afficher dans une seule cellule mais sur toute la ligne, c'est à dire qu'il peut varier de colonne. Il depend de ma formule, et il varie à chaque nouvelle ligne.
C'est donc pour cette raison que je souhaite tester chaque cellule pour voir si elle contient un X dans la cellule d'avant et afficher les couleurs en fonction de la présence de celui-ci.

Ainsi dans une cellule, pour une condition, mettre un test de présence du X et afficher la couleur correspondante.

Dis moi si je m'égare en partant dans cette direction et si tu as besoin d'autres informations

Écrit par : Aliboron 13 Mar 2013, 19:54

Citation (Tweek70 @ 13 Mar 2013, 16:17) *
Je suis totalement d'accord avec cette solution avec un X dans une cellule fixe.

C'est toi qui as donné un exemple avec une cellule fixe… wink.gif

Citation (Tweek70 @ 13 Mar 2013, 16:17) *
Mais ici mon X peut s'afficher dans une seule cellule mais sur toute la ligne, c'est à dire qu'il peut varier de colonne. Il depend de ma formule, et il varie à chaque nouvelle ligne.

Ben, toujours si j'ai compris ce que tu cherches à faire, les règles de base sont les mêmes, c'est seulement la condition qui est différente. Puisque ce n'est plus lié à une cellule en particulier mais à la présence d'un X dans une plage, il faut procéder différemment. Si par exemple c'est dans la plage B2:T2 que ce X peut apparaître, alors il faut utiliser une formule du genre :

=NON(ESTNA(RECHERCHEH("X";$B2:$T2;1;FAUX)))

Citation (Tweek70 @ 13 Mar 2013, 16:17) *
Dis moi si je m'égare en partant dans cette direction et si tu as besoin d'autres informations

Disons que, si tu veux qu'on t'aide à trouver une solution, il vaut mieux décrire complètement la situation. Dans un premier temps, il est question d'adapter des plages selon le contenu d'une cellule, maintenant il c'est le contenu de "plusieurs" cellules (lesquelles ? que contiennent les autres ?) mais si ce n'est toujours pas vraiment un reflet de la situation réelle, on ne va pas encore avoir une réponse qui correspond… mais ce n'est pas trop étonnant...

Écrit par : Tweek70 14 Mar 2013, 16:52

Toute mes excuses si je me suis mal expliqué, j'ai essayé de simplifier le problème au maximum.

J'ai tenté cette solution avec ta formule:
- dans la première cellule de la ligne B2: condition "=NON(ESTNA(RECHERCHEH("X";$B2:B2;1;FAUX)))=VRAI" et dans "format" couleur bleue
- j'ai ensuite collé cette cellule jusqu'à la fin de la ligne (BA2) où il est susceptible d'y avoir un "X" qui s'affiche
- j'ai ensuite placé un X aléatoirement

J'ai bien la couleur bleue qui s'affiche dans les cellules après le "X". Mais je ne sais pas comment faire pour afficher les autres couleurs après le bleu(18 cases après le X, le rouge,...)

Écrit par : Aliboron 14 Mar 2013, 17:48

Citation (Tweek70 @ 14 Mar 2013, 16:52) *
.../...J'ai bien la couleur bleue qui s'affiche dans les cellules après le "X". Mais je ne sais pas comment faire pour afficher les autres couleurs après le bleu (18 cases après le X, le rouge,...)

Ah, parce que, maintenant, c'est "18 cases après le X" qu'il y a le rouge ? Franchement, si tu voulais bien te donner la peine de détailler les données du problème, on avancerait peut-être un peu plus vite. Pour le moment, à chaque message on a une nouvelle modification des données, ce n'est pas facile à suivre...

Écrit par : oinegain 13 Aug 2016, 06:30

Bonjour,
je travail avec Excel 2011, dans lequel j'ai créé un tableau qui contient plusieurs lignes. j'ai utilisé une mise en forme conditionnelle afin de mettre d'un couleur une ligne sur deux pour une meilleure lisibilité.
J'ai utilisé pour cela la formule =MOD(LIGNE();2)=0 pour mette la ligne paire en couleur.
Cette formule me met en effet la ligne paire, mais j'aurai aimé que celle-ci soit mise en couleur que si la cellule de la colonne A contient une valeur.

Ex: mon tableau contient des valeurs jusqu’à la ligne 20, si j'ajoute une valeur en A21 la ligne reste blanche car impaire, si j'ajoute une valeur en A22 la mise en forme est appliquée.

Merci

Écrit par : Aliboron 13 Aug 2016, 09:37

Citation (oinegain @ 13 Aug 2016, 07:30) *
J'ai utilisé pour cela la formule =MOD(LIGNE();2)=0 pour mette la ligne paire en couleur.
Cette formule me met en effet la ligne paire, mais j'aurai aimé que celle-ci soit mise en couleur que si la cellule de la colonne A contient une valeur.

Alors il faut ajouter dans la formule la condition voulue. Du coup, elle devient quelque chose comme =SI($A1<>"";MOD(LIGNE();2)=0) (en partant du principe que ta mise en forme conditionnelle s'applique à partir de la ligne 1).

Écrit par : oinegain 13 Aug 2016, 14:46

Merci pour la formule, c'est exactement ce que je voulais.
Je ne pensais pas que je pouvais ajouter une fonction si dans une mise en forme conditionnelle puisque celle-ci est déjà une condition....

encore merci pour ton aide :-)

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)