Mise en forme conditionnelle avec fonction ET et DÉCALER [Résolu]

- - Dernière réponse :  fragar - 30 juil. 2019 à 04:29
Bonjour,

J'ai un drôle de problème que je n'arrive pas à régler. Ça fait un petit moment que je tente plusieurs choses et je n'y arrive pas. Lorsque je fais une mise en forme conditionnelle avec la fonction:
=ET(DECALER(B4;-(LIGNE(B4)-(ARRONDI.SUP(((LIGNE(B4)/3)-1);0)*3+3));0;;)<>"";NON(ESTNUM(TROUVE("Congé";DECALER(B4;-(LIGNE(B4)-(ARRONDI.SUP(((LIGNE(B4)/3)-1);0)*3+3));0;;)))))
La mise en forme conditionnelle ne s'applique pas alors que j'ai des cellules qui respectent les conditions de ma formule; ne pas être vide et ne pas contenir le mot congé,

J'ai fais plusieurs tests. J'ai pris seulement la première condition de ma fonction ET:
=DECALER(B4;-(LIGNE(B4)-(ARRONDI.SUP(((LIGNE(B4)/3)-1);0)*3+3));0;;)<>"")
et à ce moment là, tout fonctionne sauf que les cellules contenant le mot congé se remplis.Aussitôt que j'intègre cette fonction dans une fonction ET:
=ET(DECALER(B4;-(LIGNE(B4)-(ARRONDI.SUP(((LIGNE(B4)/3)-1);0)*3+3));0;;)<>"")
plus rien ne fonctionne. C'est pourtant la même formule mise à part qu'elle est contenue dans une fonction ET. Je crois que ça nous mène vers une piste. Peut-être avez-vous déjà vécu quelque chose de semblable.

Pour vous guider, c'est un calendrier qui contient 3 cellules verticales par jour et dont l'information "Vacances" ou "Congé xxxx" s'affiche dans la dernière cellule. C'est pourquoi j'utilise la fonction décaler. Je ne crois pas que ce soit ma fonction qui soit problématique comme elle fonctionne lorsque je la sépare et que je retire le ET.

Merci de votre aide!
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
2083
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
23 septembre 2019
411
1
Merci
Bonjour,
Comme je n'aime par rester sur ma faim, j'ai tenté autre chose avec une formule toute simple et 3 MFC

sélection de la 1 ère ligne de chaque bloc de 3 lignes pour la MFC 1 après mise en place
sélection de la 2 ème ligne de chaque bloc de 3 lignes pour la MFC 2 après mise en place
sélection de la 3 ème ligne de chaque bloc de 3 lignes pour la MFC 3

cette formule:

=OU(C6="Férié";C6="Bureau fermé";GAUCHE(C6;5)="Congé")

Attention chez-moi (excel 2013) puisque ce ne sont pas des cellules bloquées ça a tendance à changer la référence de cellule avec l'apparition de plusieurs chiffres après la lettre ; à rectifier après application

Voici ce que ça donne, en espérant que ça convienne

https://www.cjoint.com/c/IGCh37A3VoW

Cordialement

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 60192 internautes nous ont dit merci ce mois-ci

Bonjour PapyLuc51,
Merci de votre aide. Dans mon cas, la formule simple à utiliser est plutôt la suivante:
=ET(GAUCHE(C6;5)<>"Congé";OU(C6="Férié";C6="Bureau fermé")) comme je veux exclure les journées avec le terme "congé".
J'aime l'idée de cette fonction qui est beaucoup plus simple. Je crois bien y aller dans ce sens. Parfois, on cherche à faire des trucs plus compliqués qu'ils ne le devraient l'être comme avec la formule que j'avais initialement.

Sinon, j'ai l'option d'utiliser le tableau situé dans les cellules U4:AA21 et de simplement vérifier dans ma formule MFC si c'est indiqué vrai ou faux. Par contre, je n'aime pas le fait que les données peuvent être supprimées facilement par inadvertance.
PapyLuc51
Messages postés
2083
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
23 septembre 2019
411 > fragar -
Bonjour,

Ma formule n'était qu'un exemple, il n'est même pas utile de mettre la partie concernant "Congé"

=OU(C6="Férié";C6="Bureau fermé")

ça l'exclut automatiquement.

J'ai essayé en utilisant le fameux tableau de droite, chez moi ça n'a rien donné; même en le copiant et le collant par dessus lui-même en spécial (valeur).

Cordialement
Effectivement, mon "GAUCHE(C6;5)<>"Congé" n'est pas requis. Je ne sais pas où j'avais la tête en écrivant cette formule.

Merci encore pour votre aide!
Commenter la réponse de PapyLuc51
1
Merci
Bonjour,

J'ai tenté une autre approche qui s'avère payante.
Colorer en gris la plage C4:G21,
Placer une MFC pour colorer en blanc les cellules qui satisfont la condition =NON(DECALER(C4;-(LIGNE(C4)-(ARRONDI.SUP(((LIGNE(C4)/3)-1);0)*3+3));0;;)<>"")
Placer une MFC pour colorer en blanc les cellules qui satisfont la condition =ESTNUM(TROUVE("Congé";DECALER(C4;-(LIGNE(C4)-(ARRONDI.SUP(((LIGNE(C4)/3)-1);0)*3+3));0;;)))

https://www.cjoint.com/c/IGDilsQvmTj

Cordialement.

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 60192 internautes nous ont dit merci ce mois-ci

PapyLuc51
Messages postés
2083
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
23 septembre 2019
411 -
Salutations gyrus,

Bien vu, fallait y penser

Cordialement
Bonjour gyrus,

Ce n'est pas bête comme idée! C'est une bonne façon d'y arriver!

Merci beaucoup de votre aide!
Commenter la réponse de gyrus
Messages postés
2083
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
23 septembre 2019
411
0
Merci
Bonjour

Merci de joindre une copie du fichier sans données confidentielles avec les indications de ce qui est attendu.

Faire créer un lien sur l'un des sites ci-dessous ; lien à copier et venir coller sur la réponse.

https://www.cjoint.com/

https://mon-partage.fr/

https://www.transfernow.net/

Cordialement
Bonjour PapyLuc51
Voici le lien vers le fichier:
https://www.cjoint.com/c/IGBck0KNRlP

J'ai mis des commentaires dans le fichier pour aider à la compréhension.
Merci de votre aide.
Commenter la réponse de PapyLuc51
Messages postés
2083
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
23 septembre 2019
411
0
Merci
Bonjour,

Bon, là, je suis arrivé au bout de mes compétences en la matière ; je pas trouvé ce qui coince.

J'abandonne et je laisse le soin à mes camarades, plus expérimentés, de poursuivre les investigations.

Cordialement
Commenter la réponse de PapyLuc51
0
Merci
Bonjour,

Je ne peux que confirmer ton analyse.
J'ai fait un test avec les 2 formules de MFC suivantes :
=DECALER(B4;MOD(6-LIGNE();3);0;;)<>"" pour identifier les groupes de cellules qui contiennent un texte,
=NON(ESTNUM(TROUVE("Congé";DECALER(B4;MOD(6-LIGNE();3);0;;)))) pour identifier les groupes de cellules qui ne contiennent pas "Congé"
Chacune prise séparément, on obtient un résultat correct.
Par contre, l'association des 2 formules ne donne pas le résultat attendu.
=ET(DECALER(B4;MOD(6-LIGNE();3);0;;)<>"";NON(ESTNUM(TROUVE("Congé";DECALER(B4;MOD(6-LIGNE();3);0;;)))))

Je rejoins donc le clan des déconcertés.

Cordialement.
C'est ce que je trouve étrange qu'une fois les deux formules associées, plus rien ne fonctionne. Merci d'avoir tenté le coup!
Commenter la réponse de gyrus