FRAMACALC mise en forme conditionnelle

Bonjour,
Est-il possible de faire une mise en forme conditionnelle, ex si la cellule contient 1 fond = vert, sinon fond = rouge ?
Merci d’avance

Hello,
Merci pour cette question, l’occasion pour moi de découvrir une fonctionnalité cachée de Framacalc (Ethercalc).
Comme indiqué ici (en anglais), c’est possible (mais pas sur une même cellule)

Voir le test sur le tableur suivant : https://lite.framacalc.org/mise_en_forme_conditionnelle

Il faut que la cellule contenant la formule (ici B1 et B2) soit au format HTML :
menu / Format / Text / Choisir « HTML » and enregistrer les paramètres de la cellule.

Merci, je vais regarder.

Cette solution ne convient pas, car c’est une cellule saisie et non pas calculé.

Cette solution ne convient-elle vraiment pas ? Si c’est un champ calculé, il suffit d’intégrer la formule exemple dans le calcul…

Ben, justement c’est un champ saisi et non pas calculé.

Et c’est quoi le calcul ?

Pas de calcul, saisie avec un clavier

Est-ce qu’il serait possible d’avoir un exemple sur un framacalc de test de ce qui est attendu ?


Dans l’exemple Nbre de participants = 2, Participants1 et 2 sont verts le 3 est rouge

Eh, ben, pas mal comme idée.

Je vais l’amélorier un peu. (Mais je me demande si cela ne pourrait pas amener des problématiques…)

On peut mettre également une valeur comme « #cell_C1{font-size:large !important;} ». Ici, ça modifie la taille de la police de caractères de la cellule C1 en utilisant son identifiant dans la page web (cell_C1).

J’ai modifié le calc que tu avais créé pour l’explication de ton idée afin d’y intégrer la mienne.

cf. Le plage de cellule « C1:G7 ». La colonne G est sous format HTML. Et j’ai écris les formules pour qu’elles soient recopiables vers le bas.

C D E F G
P1 P2 P3
0 =if(C5=0,« #cell_D »&rows($C$1:$C5)&« ,#cell_E »&rows($C$1:$C5)&« ,#cell_F »&rows($C$1:$C5)&« {background-color:red !important;} »,if(C5=1,« #cell_D »&rows($C$1:$C5)&« {background-color:green !important}#cell_E »&rows($C$1:$C5)&« ,#cell_F »&rows($C$1:$C5)&« {background-color:red !important;} »,if(c5=2,« #cell_D »&rows($C$1:$C5)&« ,#cell_E »&rows($C$1:$C5)&« {background-color:green !important;}#cell_F »&rows($C$1:$C5)&« {background-color:red !important;} »,« #cell_D »&rows($C$1:$C5)&« ,#cell_E »&rows($C$1:$C5)&« ,#cell_F »&rows($C$1:$C5)&« {background-color:green !important;} »)))
1 =IF(C6=0,« #cell_D »&ROWS($C$1:$C6)&« ,#cell_E »&ROWS($C$1:$C6)&« ,#cell_F »&ROWS($C$1:$C6)&« {background-color:red !important;} »,IF(C6=1,« #cell_D »&ROWS($C$1:$C6)&« {background-color:green !important}#cell_E »&ROWS($C$1:$C6)&« ,#cell_F »&ROWS($C$1:$C6)&« {background-color:red !important;} »,IF(C6=2,« #cell_D »&ROWS($C$1:$C6)&« ,#cell_E »&ROWS($C$1:$C6)&« {background-color:green !important;}#cell_F »&ROWS($C$1:$C6)&« {background-color:red !important;} »,« #cell_D »&ROWS($C$1:$C6)&« ,#cell_E »&ROWS($C$1:$C6)&« ,#cell_F »&ROWS($C$1:$C6)&« {background-color:green !important;} »)))
2 =IF(C7=0,« #cell_D »&ROWS($C$1:$C7)&« ,#cell_E »&ROWS($C$1:$C7)&« ,#cell_F »&ROWS($C$1:$C7)&« {background-color:red !important;} »,IF(C7=1,« #cell_D »&ROWS($C$1:$C7)&« {background-color:green !important}#cell_E »&ROWS($C$1:$C7)&« ,#cell_F »&ROWS($C$1:$C7)&« {background-color:red !important;} »,IF(C7=2,« #cell_D »&ROWS($C$1:$C7)&« ,#cell_E »&ROWS($C$1:$C7)&« {background-color:green !important;}#cell_F »&ROWS($C$1:$C7)&« {background-color:red !important;} »,« #cell_D »&ROWS($C$1:$C7)&« ,#cell_E »&ROWS($C$1:$C7)&« ,#cell_F »&ROWS($C$1:$C7)&« {background-color:green !important;} »)))
3 =IF(C8=0,« #cell_D »&ROWS($C$1:$C8)&« ,#cell_E »&ROWS($C$1:$C8)&« ,#cell_F »&ROWS($C$1:$C8)&« {background-color:red !important;} »,IF(C8=1,« #cell_D »&ROWS($C$1:$C8)&« {background-color:green !important}#cell_E »&ROWS($C$1:$C8)&« ,#cell_F »&ROWS($C$1:$C8)&« {background-color:red !important;} »,IF(C8=2,« #cell_D »&ROWS($C$1:$C8)&« ,#cell_E »&ROWS($C$1:$C8)&« {background-color:green !important;}#cell_F »&ROWS($C$1:$C8)&« {background-color:red !important;} »,« #cell_D »&ROWS($C$1:$C8)&« ,#cell_E »&ROWS($C$1:$C8)&« ,#cell_F »&ROWS($C$1:$C8)&« {background-color:green !important;} »)))

Donc les 4 cas de figures, où Nombre de participants = 0, 1, 2 ou 3. Et colorisation des cellules concernées en fonction de ce nombre sur une ligne. Le ‹ !important › est important, cela permet de ne pas aller plus loin dans l’application du style; cependant cela pourrait engendrer des artefacts graphiques, selon moi.

1 Like

Bonjour,

Je cherche à appliquer ces idées de mise en forme conditionnelle à un Menu déroulant, mais mes compétences sont bien trop limitées (en tableur, en html, etc)…

J’ai un beau tableau, avec plusieurs colonnes dont l’une d’entre elle propose un Menu déroulant (sous forme =SELECT) avec différentes options (par ex:« EN ATTENTE »,« COMPLET »,« INDISPO », etc) et j’aimerais pouvoir attribuer une couleur à chaque option sélectionnée, le tout dans la même cellule.

Exemple : si COMPLET, la cellule se colore en vert ; si EN ATTENTE, la cellule se colore en orange ; si INDISPO, la cellule se colore en ROUGE.

Est-ce que quelqu’un de plus calé que moi à une petite idée de comment faire ?

Merci merci !

Bonsoir,

Normalement, on ne rouvre pas un ancien topic pour poser sa question :wink:

Mais comme je remarque qu’il manque un détail dans ma réponse précédente, je vais répondre ici afin que ce détail apparaisse (et vu que je ne peux plus modifier mon post précédent) Pour info, ce détail est la balise <style> qui a disparu dans mon copier/coller de la formule de Framacalc vers Framacolibri .

Donc, en considérant que la liste déroulante se trouve à la cellule D3, j’utiliserai la formule suivante dans une colonne non utilisée et à la même ligne:

= IF ( D3 = "En attente", "<style> #cell_D" & ROWS ( $D$1:$D3 ) & " { background-color: green !important; } </style>",
IF ( D3 = "Complet", "<style> #cell_D" & ROWS ( $D$1:$D3 ) & " { background-color: red !important; } </style>",
IF ( D3 = "Réservé", "<style> #cell_D" & ROWS ( $D$1:$D3 ) & " { background-color: gray !important; } </style>",
"<style> #cell_D" & ROWS ( $D$1:$D3 ) & " { background-color: lightblue !important; } </style>"
)))

A notre l’usage de cell_D car c’est les cellules de la colonne D qui doivent être coloriées. Et $D$1:$D3 doit être adapté pour chaque ligne. Normalement en faisant une copie de la formule vers les autres lignes, cela changera (déplacera) la référence de la cellule à colorer.

Attention cette colonne « non-utilisée » qui contiendra cette formule de mise en couleur doit avoir un formatage texte de type HTML.

image

(J’ai fait un test de copier/coller de cet exemple depuis ce post vers Framacalc pour voir si pas d’artefact. Ca me semble OK :wink:

Oh et pour le nom des couleurs: HTML Color Names

Incroyable ! Ça marche tout nickel ! Merci merci ! Désolé pour la réouverture du topic, comme c’était dans le même ordre d’idée, je me suis dit que c’était plus malin d’avoir tout sur un même sujet. :slight_smile:

Merci encore !