XL 2019 ? planning extraire des données avec un roulement d'une semaine sur deux

Patchinette

XLDnaute Nouveau
Bonjour à tous et toutes,

Je me décide à vous demander de l'aide, j'ai passé beaucoup de temps, mais je n'y arrive pas toute seule ! Si l'un d'entre vous pouvait m'aider je vous en serai très reconnaissante.

J'ai construit un planning, qui extrait mes horaires de travail (je travaille en alternance d'horaire sur 2 semaines).

Ma formule actuelle, teste si les semaines sont paires ou non, et j'extrais les données avec une fonction index/equiv/equiv. Elle fonctionne parfaitement pour 2 de mes employeurs (Barichon et Dormichon), car effectivement je travaille en semaine paire pour l'un et en semaine impaire pour l'autre.

En ce qui concerne mon premier employeur (Tartanpion) j'appliquais la même formule, sauf qu'à chaque fois que 2 semaines impaires se suivent (sem 53 et sem 1), toute l'extraction de mes heures devient fausse.

J'aurais aimé trouver une formule qui ne tient pas compte du système impair et pair. Mais seulement de l'alternance d'une semaine sur l'autre et ce à partir d'une date donnée.

J'ai tenté en cellule A39 de tester si mon horaire 8 jours plus tôt était vide avec cette formule :
=NON(ESTVIDE(ADRESSE((EQUIV(AUJOURDHUI()-JOURSEM(AUJOURDHUI())-2-SI(JOURSEM(AUJOURDHUI())=1;7;0);C10:C40;0)+9);4))).
Mais lorsque je l'étends et que je vérfie, je constate que la formule teste toujours la même cellule.

Je ne sais pas si j'applique le bon raisonnement. Depuis des jours je lis plein de trucs, je ne sais plus si je dois tester si l'année à 53 semaines, et comment faire ça, ou si c'est mieux de pouvoir extraire mes horaires une semaines sur deux en alternance d'horaires et surtout comment faire. Je suis perdue.

Je vous remercie d'avance, si vous pouviez m'aider à trouver une formule qui pourrait fonctionner pour chacun de mes emplois.

Patchinette
 

Pièces jointes

  • PLANMULTIEMPLOYEURS QUESTION FORUM.xlsx
    37 KB · Affichages: 19

Patchinette

XLDnaute Nouveau
Bonjour JHA, bonjour tout le monde,

Après de multiple essais, je reviens vers toi, ou vers d'autres d'ailleurs !

La formule alliant le travail que tu as eu la gentillesse de me faire, et le petit bout de formule que je dois rajouter n'est pas loin de fonctionner ! Et d'ailleurs fonctionne en partie !

Mais j'ai encore un problème, qui concerne mon bout de fomule :-(
D'après ce que je crois comprendre, ce serait un problème de syntaxe, sans doute une ")" qui ne serait pas au bon endroit.

J’ai un "faux", quand la recherche Gauche ne correspond pas à « C », par exemple :

« H »= « C » --> renvoie (faux) (voir image planning, cases oranges qui correspondent à des heures de travail supplémentaires « HS » (voir sur document j'ai copié les résultats de l'analyseur de formule).

J’en déduit donc que le problème vient du placement de la parenthèse de fin de 2ème sierreur , la parenthèse de fin ne doit pas être au bon endroit. Mais je n’en suis pas sûre*,

Si je peux schématiser la formule à partir du 2ème SIERREUR, ce serait :

Si tu trouves « C » dans indirect de G3, alors « ‘’ ‘’ », sinon reprise de ta formule, puis la fermeture du 1er sierreur.

*car je n'arrive pas à analyser ta formule. Car il me semble aussi que :
SI(ET($G$3=DONNES!$A$5; condition 1
MOD(DECALER(Datas!$A$1;
condition 2 ?
EQUIV(C10;DECALER(Datas!$A$1;1; si vrai ?
EQUIV(C$6;Datas!$A$1:$K$1;0)-1;375);0);22+(C$6-2018));2)=0); si faux ? problème ? ou normal ?

Pourrais-tu m’aider trouver la bonne formule ? Grace à toi je ne suis pas loin du but ! C’est vraiment juste un problème de syntaxe ! Promis après je ne t’embête plus !

Je te remets la formule ci-dessous + le fichier joint :

=SIERREUR(SIERREUR(SI(GAUCHE(RECHERCHEV(C10;INDIRECT($G$3);2;FAUX);1)= "C";"");SI($G$3=DONNES!$A$5;SI(ET($G$3=DONNES!$A$5;MOD(DECALER(Datas!$A$1;EQUIV(C10;DECALER(Datas!$A$1;1;EQUIV(C$6;Datas!$A$1:$K$1;0)-1;375);0);22+(C$6-2018));2)=0);INDEX(DONNES!$I$5:$O$5;EQUIV(TEXTE(JOURSEM(C10);"jjj");plHRSjour2;0));INDEX(DONNES!$B$5:$H$5;EQUIV(TEXTE(JOURSEM(C10);"jjj");plHRSjour1;0)));
SI(ET($G$3=DONNES!$A$6;MOD(NO.SEMAINE.ISO(C10);2)=1);INDEX(DONNES!$B$6:$H$6;EQUIV(TEXTE(JOURSEM(C10);"jjj");plHRSjour1;0));
SI(ET($G$3=DONNES!$A$7;MOD(NO.SEMAINE.ISO(C10);2)=0);INDEX(DONNES!$I$7:$O$7;EQUIV(TEXTE(JOURSEM(C10);"jjj");plHRSjour2;0));0))));"")
 

Pièces jointes

  • Explication du problème de syntaxe avec images.JPG
    Explication du problème de syntaxe avec images.JPG
    135.2 KB · Affichages: 23

Patchinette

XLDnaute Nouveau
Bonsoir,
J'ai passé des heures, j'aurai du mieux tester ton fichier, je me suis arrêtée à "CONGE", j'ai vu que ça fonctionnait, je me suis lancée tête baissée.

Ça fonctionne presque tu n'es pas loin !
Cependant j'aurai dû mieux d'expliquer mon système de codification (mea culpa)
En ce qui concerne la feuille des absences :

Si le code commence par "C" ce sont des congés alors il ne faut rien retourner --> ""
Et ce pour tous les employeurs
mais si le code commence par une autre lettre que "C", (quelqu'elle soit) il faut retourner les horaires.
J'ai essayé tout l'après midi, je ne suis parvenue à rien.

Je ne sais plus comment le dire, alors merci d'avance !
Patchinette
 

Patchinette

XLDnaute Nouveau
Bonsoir JHA,

J'ai tellement honte, je me suis encore mal expliquée, quand je disais renvoyer les horaires, je ne parlais que des horaires du planning habituel (P2:AD10) et pas des horaires des absences.
Pour faire simple quand il y a des congés et donc qu'on trouve la lettre "C" dans la feuille d'absences, il ne faut rien faire affiché "" sur le calendrier (comme dans ta formule parfait !), sinon, il faut renvoyer les heures de travail habituelles (P2:AD10).
Je me sens vraiment crétine d'expliquer aussi mal les choses. Je comprends que ça n'est pas facile pour toi de comprendre. J'espère que là je suis plus explicite.
J'espère que tu voudras me faire encore ce kdo (c'est mon anniversaire aujourd'hui) ;-)
Si tu ne veux pas, je comprendrais et j'essayerai de changer ta formule toute seule, mais je ne suis pas certaine d'y arriver, ça devient tellement compliqué pour moi.
Bonne soirée
Merci
 

Patchinette

XLDnaute Nouveau
Bonjour à tous,

Ci joint le fichier révisé. Bon anniversaire en retard.

JHA

Bonsoir JHA,
Cette fois c'est pour te remercier du fond du cœur, que je t'écris, car franchement je n'y serai jamais arrivée sans ton aide précieuse. Je te remercie aussi de ta patience.
La formule fonctionne ! J'ai vérifié sur cette année et la suivante pour être certaine. Ta formule fait bien ce que je voulais. C'est parfait !!!
Alors encore MERCI, MERCI, MERCI !
Porte toi bien !
Mes pensées les meilleurs
Patchinette
 

Discussions similaires

Réponses
4
Affichages
375
Compte Supprimé 979
C

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo