Partager via

Raccourcir deux formules trop longues

Anonyme
2021-10-18T12:31:29+00:00

Bonjour tout le monde,

J'ai créé un fichier Excel pour insérer efficacement les vacances de mes collègues. ce dernier prend également en compte en fonction de la personne les jours d'absences pour temps partiels et les jours fériés.

La formule fonctionne mais elle est trop longue et je ne peux pas la recopier pour les 23 personnes.

Pourriez-vous m'aider à raccourcir la formule pour les fériés et les temps partiels ?

La formule se présente comme suit:

=SI(TEXTE($D7;"MMMM")<>$E$1;$A$52; --> vérifie si le jour fait bien partie du mois en cours et si c'est pas le cas, renvoie "X" qui, couplé à une mise en forme conditionnelle efface la mise en forme pour ne laisser apparaître que les jours du mois en cours

SI((OU(JOURSEM($D7)=7;JOURSEM($D7)=1))=VRAI;$A$46; --> vérifie si le jour est un weekend et si c'est pas le cas, renvoie "W" qui, couplé à une mise en forme conditionnelle colore la cellule en jaune

SI((OU($D17='Jours fériés'!$B$2;$D17='Jours fériés'!$B$3;$D17='Jours fériés'!$B$5;$D17='Jours fériés'!$B$7;$D17='Jours fériés'!$B$8;$D17='Jours fériés'!$B$9;$D17='Jours fériés'!$B$10;$D17='Jours fériés'!$B$11;$D17='Jours fériés'!$B$12;$D17='Jours fériés'!$B$14;$D17='Jours fériés'!$B$15;$D17='Jours fériés'!$B$16;$D17='Jours fériés'!$B$17;$D17='Jours fériés'!$B$18;$D17='Jours fériés'!$B$19;$D17='Jours fériés'!$B$20;$D17='Jours fériés'!$B$21;$D17='Jours fériés'!$B$22;$D17='Jours fériés'!$B$23)=VRAI);$A$38;

--> vérifie si la date est un jour férié (les jours sont indiqués dans l'onglet "Jours fériés") et si c'est le cas, renvoie "F" qui, couplé à une mise en forme conditionnelle colore la cellule en vert

SI(E$2='Temps partiels'!C$1; SI((OU(JOURSEM($D4)='Temps partiels'!$C$2;JOURSEM($D4)='Temps partiels'!$C$3;

JOURSEM($D4)='Temps partiels'!$C$4;JOURSEM($D4)='Temps partiels'!$C$5;JOURSEM($D4)='Temps partiels'!$C$6))=VRAI;$A$48;

SI((OU(JOURSEM($D4)='Temps partiels'!$C$8;JOURSEM($D4)='Temps partiels'!$C$9;JOURSEM($D4)='Temps partiels'!$C$10;JOURSEM($D4)='Temps partiels'!$C$11;JOURSEM($D4)='Temps partiels'!$C$12))=VRAI;$A$50;"")); --> vérifie si le jour est le jour de congé pour temps partiel indiqué dans l'onglet "Temps partiels" et si c'est le cas renvoie "TP" qui, couplé à une mise en forme conditionnelle colore la cellule en noir + check si le visa en E2 correspond au premier visa de l'onglet des temps partiels.

+ idem pour le deuxième SI mais renvoie "D" qui, couplé à une mise en forme conditionnelle, colore la cellule en rouge rayé

"" --> Si aucune des conditions n'est remplie et qu'il s'agit d'un jour de travail classique, la cellule est laissée vide donc blanche

Voici une capture d'écran du tableau (les valeurs à 0 c'est juste qu'il n'y a pas de formule attribuée au visa vu que j'ai pas assez de place) et voici le lien du classeur: https://mega.nz/file/sF0CyRgZ#dBDfgBL2P4WmEP5u1VOru7oux_G5Kt4dI95pnKmVlK4

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

DanielCo 107.7K Points de réputation
2021-10-18T16:02:27+00:00

"La formule SI(ESTNUM(EQUIV(JOURSEM($D7);'Temps partiels'!$C$8:$C$12;0))=VRAI;$A$50;"")); ne fonctionne pas et d'ailleurs n'est pas du tout correcte..."

La formule n'est évidemment pas complète puisqu'il s'agit de l'incorporer dans une formule à la place à la place d'une autre chaîne.

je ne comprends pas pourquoi tu parles de remplacer ceci par une formule ayant trait aux jours fériés ??? Il est question ici de temps partiel ! Je t'aai mis un classeur de test ici :

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

Daniel

Cette réponse a-t-elle été utile ?

1 personne a trouvé cette réponse utile.
0 commentaires Aucun commentaire

5 réponses supplémentaires

  1. Anonyme
    2021-10-18T15:39:38+00:00

    Merci pour ta réponse mais:

    La formule SI(ESTNUM(EQUIV(JOURSEM($D7);'Temps partiels'!$C$8:$C$12;0))=VRAI;$A$50;"")); ne fonctionne pas et d'ailleurs n'est pas du tout correcte... si je prend ta formule je devrais indiquer ça: SI(ESTNUM(EQUIV(JOURSEM($D7);'Jours fériés'!$B$2:$B$23;0))=VRAI;$A$38;""))

    et encore le ESTNUM(EQUIV(JOURSEM($D7) je vois pas à quoi ça sert... comme c'est un jour férié je n'ai pas besoin de connaître le numéro du jour, je dois savoir s'il s'agit d'une date entière identique. et la fonction EQUIV je vois vraiment pas l'intérêt....

    Pour la formule SI(ESTNUM(EQUIV(JOURSEM($D7);DECALER('Temps partiels'!$B$2:$B$6;;EQUIV(K$2;'Temps partiels'!$C$1:$Y$1;0));0));$A$48; elle marche pas non plus et ne prend d'ailleurs pas en compte les demi-jours de congé.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2021-10-18T15:03:55+00:00

    Pour la cellule K7 :

    Au lieu de :

    SI($D7='Jours fériés'!$B$2;$A$38;SI($D7='Jours fériés'!$B$3;$A$38;SI($D7='Jours fériés'!$B$5;$A$38;SI($D7='Jours fériés'!$B$7;$A$38;SI($D7='Jours fériés'!$B$8;$A$38;SI($D7='Jours fériés'!$B$9;$A$38;SI($D7='Jours fériés'!$B$10;$A$38;SI($D7='Jours fériés'!$B$11;$A$38;SI($D7='Jours fériés'!$B$12;$A$38;SI($D7='Jours fériés'!$B$14;$A$38;SI($D7='Jours fériés'!$B$15;$A$38;SI($D7='Jours fériés'!$B$16;$A$38;SI($D7='Jours fériés'!$B$17;$A$38;SI($D7='Jours fériés'!$B$18;$A$38;
    SI($D7='Jours fériés'!$B$19;$A$38;SI($D7='Jours fériés'!$B$20;$A$38;SI($D7='Jours fériés'!$B$21;$A$38;SI($D7='Jours fériés'!$B$22;$A$38;SI($D7='Jours fériés'!$B$23;$A$38;

    Mets :

    SI(ESTNUM(EQUIV(JOURSEM($D7);'Temps partiels'!$C$8:$C$12;0))=VRAI;$A$50;""));

    Au lieu de :

    SI(K$2='Temps partiels'!$D$1;SI((OU(JOURSEM($D7)='Temps partiels'!$D$2;JOURSEM($D7)='Temps partiels'!$D$3;JOURSEM($D7)='Temps partiels'!$D$4;JOURSEM($D7)='Temps partiels'!$D$5;JOURSEM($D7)='Temps partiels'!$D$6))=VRAI;$A$48;
    SI((OU(JOURSEM($D7)='Temps partiels'!$D$8;JOURSEM($D7)='Temps partiels'!$D$9;JOURSEM($D7)='Temps partiels'!$D$10;JOURSEM($D7)='Temps partiels'!$D$11;JOURSEM($D7)='Temps partiels'!$D$12))=VRAI;$A$50;""));

    SI(K$2='Temps partiels'!$E$1;SI((OU(JOURSEM($D7)='Temps partiels'!$E$2;JOURSEM($D7)='Temps partiels'!$E$3;JOURSEM($D7)='Temps partiels'!$E$4;JOURSEM($D7)='Temps partiels'!$E$5;JOURSEM($D7)='Temps partiels'!$E$6))=VRAI;$A$48;
    SI((OU(JOURSEM($D7)='Temps partiels'!$E$8;JOURSEM($D7)='Temps partiels'!$E$9;JOURSEM($D7)='Temps partiels'!$E$10;JOURSEM($D7)='Temps partiels'!$E$11;JOURSEM($D7)='Temps partiels'!$E$12))=VRAI;$A$50;""));

    SI(K$2='Temps partiels'!$F$1;SI((OU(JOURSEM($D7)='Temps partiels'!$F$2;JOURSEM($D7)='Temps partiels'!$F$3;JOURSEM($D7)='Temps partiels'!$F$4;JOURSEM($D7)='Temps partiels'!$F$5;JOURSEM($D7)='Temps partiels'!$F$6))=VRAI;$A$48;
    SI((OU(JOURSEM($D7)='Temps partiels'!$F$8;JOURSEM($D7)='Temps partiels'!$F$9;JOURSEM($D7)='Temps partiels'!$F$10;JOURSEM($D7)='Temps partiels'!$F$11;JOURSEM($D7)='Temps partiels'!$F$12))=VRAI;$A$50;""));

    SI(K$2='Temps partiels'!$G$1;SI((OU(JOURSEM($D7)='Temps partiels'!$G$2;JOURSEM($D7)='Temps partiels'!$G$3;JOURSEM($D7)='Temps partiels'!$G$4;JOURSEM($D7)='Temps partiels'!$G$5;JOURSEM($D7)='Temps partiels'!$G$6))=VRAI;$A$48;
    SI((OU(JOURSEM($D7)='Temps partiels'!$G$8;JOURSEM($D7)='Temps partiels'!$G$9;JOURSEM($D7)='Temps partiels'!$G$10;JOURSEM($D7)='Temps partiels'!$G$11;JOURSEM($D7)='Temps partiels'!$G$12))=VRAI;$A$50;""));

    SI(K$2='Temps partiels'!$H$1;SI((OU(JOURSEM($D7)='Temps partiels'!$H$2;JOURSEM($D7)='Temps partiels'!$H$3;JOURSEM($D7)='Temps partiels'!$H$4;JOURSEM($D7)='Temps partiels'!$H$5;JOURSEM($D7)='Temps partiels'!$H$6))=VRAI;$A$48;
    SI((OU(JOURSEM($D7)='Temps partiels'!$H$8;JOURSEM($D7)='Temps partiels'!$H$9;JOURSEM($D7)='Temps partiels'!$H$10;JOURSEM($D7)='Temps partiels'!$H$11;JOURSEM($D7)='Temps partiels'!$H$12))=VRAI;$A$50;""));

    SI(K$2='Temps partiels'!$L$1;SI((OU(JOURSEM($D7)='Temps partiels'!$L$2;JOURSEM($D7)='Temps partiels'!$L$3;JOURSEM($D7)='Temps partiels'!$L$4;JOURSEM($D7)='Temps partiels'!$L$5;JOURSEM($D7)='Temps partiels'!$L$6))=VRAI;$A$48;
    SI((OU(JOURSEM($D7)='Temps partiels'!$L$8;JOURSEM($D7)='Temps partiels'!$L$9;JOURSEM($D7)='Temps partiels'!$L$10;JOURSEM($D7)='Temps partiels'!$L$11;JOURSEM($D7)='Temps partiels'!$L$12))=VRAI;$A$50;""));

    SI(K$2='Temps partiels'!$R$1;SI((OU(JOURSEM($D7)='Temps partiels'!$R$2;JOURSEM($D7)='Temps partiels'!$R$3;JOURSEM($D7)='Temps partiels'!$R$4;JOURSEM($D7)='Temps partiels'!$R$5;JOURSEM($D7)='Temps partiels'!$R$6))=VRAI;$A$48;
    SI((OU(JOURSEM($D7)='Temps partiels'!$R$8;JOURSEM($D7)='Temps partiels'!$R$9;JOURSEM($D7)='Temps partiels'!$R$10;JOURSEM($D7)='Temps partiels'!$R$11;JOURSEM($D7)='Temps partiels'!$R$12))=VRAI;$A$50;""));

    SI(K$2='Temps partiels'!$X$1;SI((OU(JOURSEM($D7)='Temps partiels'!$X$2;JOURSEM($D7)='Temps partiels'!$X$3;JOURSEM($D7)='Temps partiels'!$X$4;JOURSEM($D7)='Temps partiels'!$X$5;JOURSEM($D7)='Temps partiels'!$X$6))=VRAI;$A$48;
    SI((OU(JOURSEM($D7)='Temps partiels'!$X$8;JOURSEM($D7)='Temps partiels'!$X$9;JOURSEM($D7)='Temps partiels'!$X$10;JOURSEM($D7)='Temps partiels'!$X$11;JOURSEM($D7)='Temps partiels'!$X$12))=VRAI;$A$50;""));

    SI(K$2='Temps partiels'!$Y$1;SI((OU(JOURSEM($D7)='Temps partiels'!$Y$2;JOURSEM($D7)='Temps partiels'!$Y$3;JOURSEM($D7)='Temps partiels'!$Y$4;JOURSEM($D7)='Temps partiels'!$Y$5;JOURSEM($D7)='Temps partiels'!$Y$6))=VRAI;$A$48;
    SI((OU(JOURSEM($D7)='Temps partiels'!$Y$8;JOURSEM($D7)='Temps partiels'!$Y$9;JOURSEM($D7)='Temps partiels'!$Y$10;JOURSEM($D7)='Temps partiels'!$Y$11;JOURSEM($D7)='Temps partiels'!$Y$12))=VRAI;$A$50;""));

    Mets

    SI(ESTNUM(EQUIV(JOURSEM($D7);DECALER('Temps partiels'!$B$2:$B$6;;EQUIV(K$2;'Temps partiels'!$C$1:$Y$1;0));0));$A$48;

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2021-10-18T13:40:09+00:00

    Je vais chercher si le numéro de jour en colonne D (trouvé avec "joursem") correspond au numéro entré dans la colonne du visa de la feuille temps partiel.

    Image

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. DanielCo 107.7K Points de réputation
    2021-10-18T13:29:23+00:00

    Bonjour,

    Que vas-tu chercher sur la feuille Temps partiels ?

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire