Problème de condition sur plage d'une colonne

noobster

XLDnaute Nouveau
Bonjour à tous,

Je rame tellement que j'ai décidé de faire appel aux plus initiés ...que moi :p

Voilà, je bloque sur ce qui me semble tellement basique:

j'ai une colonne de valeurs , ces valeurs sont soit OK;PAS OK;EN COURS d'une liste déroulante

je voudrais soit en tête de colonne ou une autre cellule inscrire une formule qui mettra la cellule en rouge si le texte de UNE des cellule de la colonne est PAS OK et en VERT si le texte de TOUTES les cellules de la colonne est OK ; cellule orange SI une des cellules est EN COURS

j'ai essayé de faire une mise en forme conditionnelle dans tous les sens

ex (ma colonne commence en G3 avec les données le restant étant entêtes etc. :
LA FORMULE EST =(G3:G100<>règlé)
-->rouge pour exemple
mais dans ce cas il ne me prend en compte que la cellule G3

en mettant également dans une cellule cette formule matricielle
{=SI((G3:G100)<>"règlé";"PASOK";"ok")}
l'affichage de ma cellule ne change que lorsque je change le contenu de la cellule G3 et non pas les autres

j'ai fait un paquet d'autres tests mais je ne suis pas sur de comprendre la subtilité d'excel..et sa logique implacable :p

merci d'avance por toute reponse à mon chti soucis.

Bonne journée
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Problème de condition sur plage d'une colonne

noobster à dit:
Bonjour à tous,

Je rame tellement que j'ai décidé de faire appel aux plus initiés ...que moi :p

Voilà, je bloque sur ce qui me semble tellement basique:

j'ai une colonne de valeurs , ces valeurs sont soit OK;PAS OK;EN COURS d'une liste déroulante

je voudrais soit en tête de colonne ou une autre cellule inscrire une formule qui mettra la cellule en rouge si le texte de UNE des cellule de la colonne est PAS OK et en VERT si le texte de TOUTES les cellules de la colonne est OK ; cellule orange SI une des cellules est EN COURS

j'ai essayé de faire une mise en forme conditionnelle dans tous les sens

ex (ma colonne commence en G3 avec les données le restant étant entêtes etc. :
LA FORMULE EST =(G3:G100<>règlé)
-->rouge pour exemple
mais dans ce cas il ne me prend en compte que la cellule G3

en mettant également dans une cellule cette formule matricielle
{=SI((G3:G100)<>"règlé";"PASOK";"ok")}
l'affichage de ma cellule ne change que lorsque je change le contenu de la cellule G3 et non pas les autres

j'ai fait un paquet d'autres tests mais je ne suis pas sur de comprendre la subtilité d'excel..et sa logique implacable :p

merci d'avance por toute reponse à mon chti soucis.

Bonne journée
Salut
si t'as les boules, c'est à cause de l'algèbre de Boole :)

Menu>>Format>>Mise en forme conditionnelle
Condition 1
Case 1 : La formule est
Case 2 : sommeprod(($G$3:$G$100)="PAS OK")*1)
format fond rouge

Condition 2 (par bouton ajouter)
Case 1 : La formule est
Case 2 : sommeprod(($G$3:$G$100)="EN COURS")*1)
format fond orange

Condition 3 (par bouton ajouter)
Case 1 : La formule est
Case 2 : non(sommeprod(($G$3:$G$100)<>"OK")*1))
format fond vert

Explications :
L'algèbre de boole(logique) admet 2 valeurs dans Excel :
VRAI => 1 enfin plutot : ce qui est différent de 0
FAUX => 0

Condition 3 :
($G$3<>"OK)*1
si G3="OK" alors ($G$3<>"OK)*1 => 0*1 = 0
si G3="Pas OK" alors ($G$3<>"OK)*1 = 1*1 = 1
si G3="EN COURS" idem

sommeprod(($G$3:$G$100)<>"OK")*1) <=>
(($G$3<>"OK)*1) + (($G$2<>"OK)*1) + ... + (($G$100<>"OK)*1)
cette formule sera égale à 0 si et seulement si toutes les cellules sont égale = "OK", sinon le résultat sera >0
Donc, si toutes les cellules sont = "OK", formule = 0 (Faux)
Si au moins une des cellules <> "OK" alors formule = 1 (vrai]
avec Non on inverse le résultat : Non(Vrai)=Faux et Non(Faux)=Vrai

donc la formule de la condition 3 est :
si l'inverse de il existe une cellule de G3:G100 qui est <> "OK" revient à aucune cellule de G3:G100 <> "OK" ou plus simplement, toutes les cellules de G3:G100 = "Ok" (CQFD)

L'ordre des conditions est primordial :
La condition 2 n'est testée que si la condition 1 n'est pas remplie
La condition 3 que si 1 et 2 ne sont pas remplies

Donc:
- si une cellule "PAS OK" => fond rouge
- Si toutes les cellules <>"PAS OK" et si une cellule = "En cours" => fond orange
- Si toutes les cellules = "OK" fond vert

Comme je ne connais pas tes besoins, j'ai répondu textuellement à la demande, mais....
Si au moins une cellule est vide, tu n'auras jamais du vert
donc, le test devrait tenir compte du fait que la cellule n'est pas vide
donc pour la condition 3, la formule :
non(sommeprod(($G$3:$G$100)<>"OK")*($G$3:$G$100)<>"")))
me semblerait plus adaptée, sauf si G3:G100 contient une formule de calcul qui donne le texte à tester

A+
 
Dernière édition:

noobster

XLDnaute Nouveau
Re : Problème de condition sur plage d'une colonne

Bon...ben j'ai essayé je promets mais comme ma mise dans le bain est toute récete j'avour ne peut-être pas avoir assez de notions pour gérer mes erreurs..

La solution semblait toute cuite mais rien n'y fait.alors j'ai décidé de joindre un fichier excel.

Je voudrais que ma condition s'applique sur la case H1 par exemple (comme dans le fichier joint) seulement rien n'y fait..
je comprends de moins en moins, ya des trucs ou je me debrouille plutot bien en info mais la...prrrt

Merci d'avance pour les petits coups de pouce.

Bonne journée à tous
 

Pièces jointes

  • mef_conditio.xls
    18 KB · Affichages: 44

noobster

XLDnaute Nouveau
Re : Problème de condition sur plage d'une colonne

en c'est pas compliqué c'est exactement ce que je voulais maintenant me reste plus qu'à comprendre la logique...

Merci beaucoup en tous cas à Gorfael et à Claude 38 pour leur aide.
Si des explications etaient possible elles seraient les bienvenues mais je ne veux pas abuser.

Je vais essayer de m'y mettre un peu plus quand je vois ce qui semble possible de faire.

Bonne journée à tous et merci encore.
 

Discussions similaires

Statistiques des forums

Discussions
312 621
Messages
2 090 272
Membres
104 477
dernier inscrit
Supertomate