Mise en forme conditionnelle avec 3 conditions
razekiel
Messages postés
77
Date d'inscription
Statut
Membre
Dernière intervention
-
razekiel Messages postés 77 Date d'inscription Statut Membre Dernière intervention -
razekiel Messages postés 77 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai écumé Google mais la je ne trouve pas de solution.
Le but de ce fichier excel est d'obtenir un indicateur (rouge/orange/vert) en fonction d'une date de chantier.
Je fixe une date de chantier, par rapport à la date du jour, un écart est calculé. Exemple il reste 8jours.
J'ai défini un délai pour 7 familles d'article.
Si l'écart est Supérieur, Inférieur, ou Compris dans le délai de la famille j'ai un indicateur Rouge, Vert ou Orange.
Je ne parviens pas à mettre cela en forme.
J'ai créé une colonne S que je compte masquée par la suite, qui affiche 2,1 ou 0.
J'aimerais avoir dans une autre colonne (colonne F) un Jeux d'icone qui affiche
- Si =2: VERT
- Si =1: ORANGE
- Si =0: ROUGE
En PJ un exemple de mon document
Par avance merci
https://www.cjoint.com/?DGqlxOzcOUt
J'ai écumé Google mais la je ne trouve pas de solution.
Le but de ce fichier excel est d'obtenir un indicateur (rouge/orange/vert) en fonction d'une date de chantier.
Je fixe une date de chantier, par rapport à la date du jour, un écart est calculé. Exemple il reste 8jours.
J'ai défini un délai pour 7 familles d'article.
Si l'écart est Supérieur, Inférieur, ou Compris dans le délai de la famille j'ai un indicateur Rouge, Vert ou Orange.
Je ne parviens pas à mettre cela en forme.
J'ai créé une colonne S que je compte masquée par la suite, qui affiche 2,1 ou 0.
J'aimerais avoir dans une autre colonne (colonne F) un Jeux d'icone qui affiche
- Si =2: VERT
- Si =1: ORANGE
- Si =0: ROUGE
En PJ un exemple de mon document
Par avance merci
https://www.cjoint.com/?DGqlxOzcOUt
A voir également:
- Mise en forme conditionnelle avec 3 conditions
- Mise en forme conditionnelle excel - Guide
- Ai suite 3 - Télécharger - Optimisation
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise en forme tableau croisé dynamique - Guide
- Mise a jour windows 10 - Accueil - Mise à jour
8 réponses
Bonsoir
regardez si ceci peut vous convenir (explications en haut de la feuille V2)
https://www.cjoint.com/?DGqumN8No6p
crdlmnt
regardez si ceci peut vous convenir (explications en haut de la feuille V2)
https://www.cjoint.com/?DGqumN8No6p
crdlmnt
Merci beaucoup Vaucluse pour cette solution qui répond parfaitement à mon soucis.
Puis je me permettre de dériver avec une autre petite question qui je pense est assez simple.
J'ai la colonne D qui représente une date d'exécution. De qu'elle façon je peux permettre un tri (par forcément automatiquement sinon ca implique un code VBA) en fonction des dates tout en conservant la même mise en page?
Merci à toi.
https://www.cjoint.com/?DGqmXAR9FnJ
Puis je me permettre de dériver avec une autre petite question qui je pense est assez simple.
J'ai la colonne D qui représente une date d'exécution. De qu'elle façon je peux permettre un tri (par forcément automatiquement sinon ca implique un code VBA) en fonction des dates tout en conservant la même mise en page?
Merci à toi.
https://www.cjoint.com/?DGqmXAR9FnJ
Ca fait un tri comme je le souhaite c'est super.
Crtl+t fonctionne très bien. L'usage de se fichier sera partagé et je suis pas certain que ce soit le plus intuitif pour tout le monde.
Je testerai demain sur ma version d'Excel la fonction Tri ou Filtre.
En revanche une chose risque de ne pas fonctionné. Toutes les dates ne seront pas renseignées. Il faut que le tri puisse s'effectuer uniquement pour les cellules de la colonne D ayant une date de renseignée.
Cela est-il possible?
En quelques mots peux tu m'expliquer ce que tu as réalisées? Pour que j'ai l'idée principale.
Crtl+t fonctionne très bien. L'usage de se fichier sera partagé et je suis pas certain que ce soit le plus intuitif pour tout le monde.
Je testerai demain sur ma version d'Excel la fonction Tri ou Filtre.
En revanche une chose risque de ne pas fonctionné. Toutes les dates ne seront pas renseignées. Il faut que le tri puisse s'effectuer uniquement pour les cellules de la colonne D ayant une date de renseignée.
Cela est-il possible?
En quelques mots peux tu m'expliquer ce que tu as réalisées? Pour que j'ai l'idée principale.
Bonjour
Voila le fichier modifié pour tenir compte des phases sans date. Pour assurer le fonctionnement, j"ai aussi modifié la formule en D qui calcule le nombre de jours, car elle renvoie une erreur s'il n'y a pas de date en D et donc perturbe le système
https://www.cjoint.com/?DGrhSc23Nmo
Dans ce système, les conditions impératives sont maintenant:
_que chaque tableau contienne exactement le même nombre de lignes de façon à ce que les "pas" des dates soit régulier (ligne 13,21,29,37 ect...donc +8 à chaque fois)
_que la colonne D ne contienne que des dates sur la ligne de début de tableau et autrement des textes ou des valeurs numériques <10000. ?Il faut dinc que la date du jour soit bien présente en D10 pour limiter le nombre de jours calculé dans D
L'explication de la formule en A dans ce dernier fichier (pas facile par écrit!!!)
elle utilise la valeur numérique de la date pour excel (de l'ordre de 41900 à l'époque)
=SI(MAX(D6:$D13)<10000;50000;SI(D13>10000;D13+LIGNE()/1000;A12))
MAX(D6:D13) détecte si il y a une valeur >10000 dans le champ D des 8 lignes au dessous de la ligne ou elle se trouve
S'il n'y en a pas, renvoie la valeur 50000 (soit le 21/11/2036 pour info), de façon à repousser les lignes concernées en bas du tableau.
Sinon on passe à l'item suivant:
SI(D13>10000;D13+LIGNE()/1000
détecte si la valeur en D est une date (>10000) et renvoie cette valeur majorée de la valeur du N° de ligne divisé par 1000
cette item permet d'incrémenter différemment les dates identiques en D selon leur position dans le tableau complet soit date+ N° de ligne divisé par 1000
et enfin, le dernier item renvoie simplement la valeur située au dessus si aucune conditions n'est remplies.
En résumé:
la valeur calculée s'inscrit en A sur la ligne où se trouve la date, se répéte tant qu'il n'y a pas de date 8 lignes + bas, et change lorsque qu'il y a une date en D.
L'entier de la valeur donc est identique pour chaque date et incrémenté de 0,001 à chaque date identique, ce qui permet le classement en progressif
Conseil: construisez votre tableau en copiant / collant les 8 lignes du tableau les unes sous les autres pour "garder" le pas
Voila voila
revenez si besoin de complément
crdlmnt
Errare humanum est, perseverare diabolicum
Voila le fichier modifié pour tenir compte des phases sans date. Pour assurer le fonctionnement, j"ai aussi modifié la formule en D qui calcule le nombre de jours, car elle renvoie une erreur s'il n'y a pas de date en D et donc perturbe le système
https://www.cjoint.com/?DGrhSc23Nmo
Dans ce système, les conditions impératives sont maintenant:
_que chaque tableau contienne exactement le même nombre de lignes de façon à ce que les "pas" des dates soit régulier (ligne 13,21,29,37 ect...donc +8 à chaque fois)
_que la colonne D ne contienne que des dates sur la ligne de début de tableau et autrement des textes ou des valeurs numériques <10000. ?Il faut dinc que la date du jour soit bien présente en D10 pour limiter le nombre de jours calculé dans D
L'explication de la formule en A dans ce dernier fichier (pas facile par écrit!!!)
elle utilise la valeur numérique de la date pour excel (de l'ordre de 41900 à l'époque)
=SI(MAX(D6:$D13)<10000;50000;SI(D13>10000;D13+LIGNE()/1000;A12))
MAX(D6:D13) détecte si il y a une valeur >10000 dans le champ D des 8 lignes au dessous de la ligne ou elle se trouve
S'il n'y en a pas, renvoie la valeur 50000 (soit le 21/11/2036 pour info), de façon à repousser les lignes concernées en bas du tableau.
Sinon on passe à l'item suivant:
SI(D13>10000;D13+LIGNE()/1000
détecte si la valeur en D est une date (>10000) et renvoie cette valeur majorée de la valeur du N° de ligne divisé par 1000
cette item permet d'incrémenter différemment les dates identiques en D selon leur position dans le tableau complet soit date+ N° de ligne divisé par 1000
et enfin, le dernier item renvoie simplement la valeur située au dessus si aucune conditions n'est remplies.
En résumé:
la valeur calculée s'inscrit en A sur la ligne où se trouve la date, se répéte tant qu'il n'y a pas de date 8 lignes + bas, et change lorsque qu'il y a une date en D.
L'entier de la valeur donc est identique pour chaque date et incrémenté de 0,001 à chaque date identique, ce qui permet le classement en progressif
Conseil: construisez votre tableau en copiant / collant les 8 lignes du tableau les unes sous les autres pour "garder" le pas
Voila voila
revenez si besoin de complément
crdlmnt
Errare humanum est, perseverare diabolicum
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Vaucluse,
D'accord je comprends mieux c'est valeur. Je ne savais pas qu'une date pouvais correspondre à une valeur.
Du coup l'idée est vraiment intéressante.
J'ai donc adapté tes formules et codes à mon fichier.
Une seule chose ne fonctionne pas, ça semble venir du VBA mais je ne suis pas calé là dedans.
Ctrl+T ne lance pas le trie, si je lance un débogage c'est cette ligne qui est en cause. Serait il possible, pputot qu'un Ctrl+T, de lancer la macro par double clic sur DATE D'EXCUTION (C17)
Je te joins mon nouveau document adapté.
https://www.cjoint.com/?DGrlskLAD1e
C'est la feuille V2.2
Sinon tu disais "Conseil: construisez votre tableau en copiant / collant les 8 lignes du tableau les unes sous les autres pour "garder" le pas"
Je peux faire une sélection/glisser?
Merci pour ton temps Vaucluse
D'accord je comprends mieux c'est valeur. Je ne savais pas qu'une date pouvais correspondre à une valeur.
Du coup l'idée est vraiment intéressante.
J'ai donc adapté tes formules et codes à mon fichier.
Une seule chose ne fonctionne pas, ça semble venir du VBA mais je ne suis pas calé là dedans.
Ctrl+T ne lance pas le trie, si je lance un débogage c'est cette ligne qui est en cause. Serait il possible, pputot qu'un Ctrl+T, de lancer la macro par double clic sur DATE D'EXCUTION (C17)
.Apply
Je te joins mon nouveau document adapté.
https://www.cjoint.com/?DGrlskLAD1e
C'est la feuille V2.2
Sinon tu disais "Conseil: construisez votre tableau en copiant / collant les 8 lignes du tableau les unes sous les autres pour "garder" le pas"
Je peux faire une sélection/glisser?
Merci pour ton temps Vaucluse
Re
https://www.cjoint.com/?DGrnpJcxb7t
ton fichier avec des corrections, mais tout est à vérifier car il faut traiter tous les cas de figure
Les corrections:
__le tri se mélange les pédales avec la notion d'affichage des plans. Je les ai supprimés car je ne suis pas assez costaud en VBA pour contourner le problème
__J'ai modifié la formule pour garantir le tri en plaçant aussi un 50000 croissant selon les lignes
__J'ai descendu la formule jusqu'à la ligne 2000 pour ne pas avoir de valeur nulle dans le tri
__J'ai placé la commande de macro par ctrl t ou par double clic en C17 (voir clic droit sur le nom d'onglet et visualiser le code)
J'ai aussi revu la macro:
__pour aligner les bonnes références de champ et de tri (de 18 à 2000 et de B à T avec tri sur la colonne Q)
__pour garantir le tri hors formules en collant les valeurs de la colonne R sur la colonne Q sans formule, Q servant de référence de tri et s'effaçant en fin d'opération)
La colonne Q ne doit donc pas être utilisée.
S'il faut changer quelque chose, reviens, mais teste ça avant
Par ailleurs: oui il est possible de "tirer" vers le bas le tableau de 8 lignes pour descendre jusqu'à 2000, y compris la zone de formule en R en sélectionnant de A à T
Le système est prévu pour fonctionner jusqu'à ligne 2000 (ou un peu avant pour avoir un dernier tableau de 8 lignes).
Mais dans tous les cas pour éviter les erreurs de tri, bien laisser la formule en R jusqu'à ligne 2000
crdlmnt
Errare humanum est, perseverare diabolicum
https://www.cjoint.com/?DGrnpJcxb7t
ton fichier avec des corrections, mais tout est à vérifier car il faut traiter tous les cas de figure
Les corrections:
__le tri se mélange les pédales avec la notion d'affichage des plans. Je les ai supprimés car je ne suis pas assez costaud en VBA pour contourner le problème
__J'ai modifié la formule pour garantir le tri en plaçant aussi un 50000 croissant selon les lignes
__J'ai descendu la formule jusqu'à la ligne 2000 pour ne pas avoir de valeur nulle dans le tri
__J'ai placé la commande de macro par ctrl t ou par double clic en C17 (voir clic droit sur le nom d'onglet et visualiser le code)
J'ai aussi revu la macro:
__pour aligner les bonnes références de champ et de tri (de 18 à 2000 et de B à T avec tri sur la colonne Q)
__pour garantir le tri hors formules en collant les valeurs de la colonne R sur la colonne Q sans formule, Q servant de référence de tri et s'effaçant en fin d'opération)
La colonne Q ne doit donc pas être utilisée.
S'il faut changer quelque chose, reviens, mais teste ça avant
Par ailleurs: oui il est possible de "tirer" vers le bas le tableau de 8 lignes pour descendre jusqu'à 2000, y compris la zone de formule en R en sélectionnant de A à T
Le système est prévu pour fonctionner jusqu'à ligne 2000 (ou un peu avant pour avoir un dernier tableau de 8 lignes).
Mais dans tous les cas pour éviter les erreurs de tri, bien laisser la formule en R jusqu'à ligne 2000
crdlmnt
Errare humanum est, perseverare diabolicum
J'ai testé en rajoutant du coup des lignes (par paquet de 8) et indiqué des dates pour faire un classement mais rien ne se passe hormis me renvoyer vers la cellule A1 (fin de ta macro).
J'ai bien fais une sélection/glissé pour rajouter les lignes en prenant bien soin de copier les colonnes Q R S T.
Et c'est à cause de selon que le double clic ne fonctionne plus on dirait.
En effet si je conserve tes trois paquets de lignes le tri fonctionne correctement
Il est important lors du tri que la colonne T soit incluse car les valeurs des cettes colonnes sont nécessaires à la mise en forme conditionnelle ROUGE ORANGE et VERT.
J'ai bien fais une sélection/glissé pour rajouter les lignes en prenant bien soin de copier les colonnes Q R S T.
Et c'est à cause de selon que le double clic ne fonctionne plus on dirait.
En effet si je conserve tes trois paquets de lignes le tri fonctionne correctement
Il est important lors du tri que la colonne T soit incluse car les valeurs des cettes colonnes sont nécessaires à la mise en forme conditionnelle ROUGE ORANGE et VERT.
.. pour suivre, un petit joujou pour le fun, qui se passe de la colonne T pour les MFC
explications dans le fichier
https://www.cjoint.com/?DGrrlZTXpVQ
crdlmnt
explications dans le fichier
https://www.cjoint.com/?DGrrlZTXpVQ
crdlmnt
Whaou, c'est super. Tu n'aurais pas du t'embêter à ce point pour les MFC. C'était caché. Mais les tiennent sont encore plus pointu. C'est super.
Dis moi, je suis étonné d'une chose. J'ai voulu inséré des colonnes ou renommé la feuille. Le code ne s'actualise pas du tout en fonction? Si j'insère des colonnes je dois faire en sorte de modifier les colonnes des Modules 1 et 2 du code VBA?
Voici le dernier que j'avais finalisé niveau présentation. Et je me suis rendu compte qu'a la fin que le tri ne fonctionnait plus. Est ce bien à cause de la macro et des colonnes? Si oui je vais modifier cela
https://www.cjoint.com/?3GrsmsNZR3I
Dis moi, je suis étonné d'une chose. J'ai voulu inséré des colonnes ou renommé la feuille. Le code ne s'actualise pas du tout en fonction? Si j'insère des colonnes je dois faire en sorte de modifier les colonnes des Modules 1 et 2 du code VBA?
Voici le dernier que j'avais finalisé niveau présentation. Et je me suis rendu compte qu'a la fin que le tri ne fonctionnait plus. Est ce bien à cause de la macro et des colonnes? Si oui je vais modifier cela
https://www.cjoint.com/?3GrsmsNZR3I
Je ne peux pas accéder à la feuille qui est protégée avec un mot de passe mais déjà:
Le tri ne peut pas fonctionner dans le fichier que tu me transmet car la macro ne se modifie pas avec l'insertion de colonne, et comme la feuille est protégée; il faut aussi intègrer le retrait de la protection au lancement de la macro et la remettre en fin d'opération
Enfin, comme les colonnes de tri sont masquées, il faut modifier dans la macro le type de sélection.
redonne moi le fichier sans la protection et je te met ça au point, car ça risque d'être coton à expliquer ici.
je mettrais dans la macro les commentaires qui te permettront de t'y retrouver pour plus tard.
Autre remarque: je pense que la création des plans perturbe le classement, je les avais enlevé dans la proposition et je ne suis pas du tout sur que tu puisses les garder.
a+
Le tri ne peut pas fonctionner dans le fichier que tu me transmet car la macro ne se modifie pas avec l'insertion de colonne, et comme la feuille est protégée; il faut aussi intègrer le retrait de la protection au lancement de la macro et la remettre en fin d'opération
Enfin, comme les colonnes de tri sont masquées, il faut modifier dans la macro le type de sélection.
redonne moi le fichier sans la protection et je te met ça au point, car ça risque d'être coton à expliquer ici.
je mettrais dans la macro les commentaires qui te permettront de t'y retrouver pour plus tard.
Autre remarque: je pense que la création des plans perturbe le classement, je les avais enlevé dans la proposition et je ne suis pas du tout sur que tu puisses les garder.
a+
bonjour
placez plutôt votre fichier sur:
https://www.cjoint.com/
à +
placez plutôt votre fichier sur:
https://www.cjoint.com/
à +
Re
Si vous conservez les guillemets qui encadrent 0 1 2 dans votre formule en S il faudra considérer ça comme des valeurs texte
et donc pour mise en forme conditionnelle
pour info: sélectionner la hauteur utile en F à partir de F14
Onglet accueil Mise en forme conditionnelle / nouvelle régle
"utiliser une formule pour mettre les cellules en surbrillance"
la formule est
=$S14="0"
format formatez en rouge
OK retour à la fenêtre de MFC nouvelle règle
=$S14="1" pour l'orange
=$S14="2" pour le vert
qui vous donnera la couleur de cellule
(vous ne pouvez pas utiliser les icônes de MFC automatique dans une cellule autre que celle qui commande la MFC)
Placez bien les valeurs entre guillemets comme dans la formule en S
crdlmnt
Si vous conservez les guillemets qui encadrent 0 1 2 dans votre formule en S il faudra considérer ça comme des valeurs texte
et donc pour mise en forme conditionnelle
pour info: sélectionner la hauteur utile en F à partir de F14
Onglet accueil Mise en forme conditionnelle / nouvelle régle
"utiliser une formule pour mettre les cellules en surbrillance"
la formule est
=$S14="0"
format formatez en rouge
OK retour à la fenêtre de MFC nouvelle règle
=$S14="1" pour l'orange
=$S14="2" pour le vert
qui vous donnera la couleur de cellule
(vous ne pouvez pas utiliser les icônes de MFC automatique dans une cellule autre que celle qui commande la MFC)
Placez bien les valeurs entre guillemets comme dans la formule en S
crdlmnt