Mise en forme conditionnelle avec fonction ET et DÉCALER

Résolu/Fermé
fragar - 24 juil. 2019 à 02:55
 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!

5 réponses

PapyLuc51 Messages postés 4412 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 26 novembre 2024 1 446
Modifié le 28 juil. 2019 à 10:19
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
1
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.
0
PapyLuc51 Messages postés 4412 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 26 novembre 2024 1 446 > fragar
Modifié le 29 juil. 2019 à 06:02
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
0
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!
0
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.
1
PapyLuc51 Messages postés 4412 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 26 novembre 2024 1 446
Modifié le 29 juil. 2019 à 11:06
Salutations gyrus,

Bien vu, fallait y penser

Cordialement
0
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!
0
PapyLuc51 Messages postés 4412 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 26 novembre 2024 1 446
24 juil. 2019 à 07:51
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
0
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.
0
PapyLuc51 Messages postés 4412 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 26 novembre 2024 1 446
27 juil. 2019 à 18:28
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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.
0
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!
0