XL 2019 pb erreur formule sur tableaux

Did25

XLDnaute Occasionnel
Bonjour le forum et bonjour XLD ,j'arrive au bout de mon travail sur mon tableau de postes en horaires 7x8 et tout fonctionne bien mise à part des erreurs a quelques endroit de l'année dont je n'arrive pas a résoudre .Par exemple le 01 janvier et le 16 Juillet et le 28 Janvier de l'année suivante et d'autres .Je ne comprends vraiment pas pourquoi cela se produit ,merci de bien vouloir m'apporter votre aide. Je précise que le fichier n'est pas achevé ,je le terminerai par la suite .Cdlt
 

Pièces jointes

  • Planning 7x8.xlsm
    164.1 KB · Affichages: 22
Solution
Utilisez les balises </> ça évite les smileys. ;)
Le second SI ne doit pas être précédé d'un égal.
Essayez :
VB:
=SI(M32="";"";SI(ET(J32>=Départ7x8;M32<Départ5x8);RECHERCHEV(MOD(M32-Départ7x8;196);Cycle7x8;2;FAUX);RECHERCHEV(MOD(M32-Départ5x8;10);Cycle5x8;2;FAUX)))

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Did,

Dans les trois cas que vous citez, MOD(J4-Départ7x8;196) donne 0.
Votre cycle fait 196 jours notés de 0 à 195. ( et non de 1 à 196 )
Hors 0 n'est pas dans la table Cycle7x8 qui commence à 1, d'où le #N/A.

Ou vous rajoutez 0 dans la table, ou vous faites 1+ MOD(J4-Départ7x8;196) en changeant les codes de la table, en les shiftant de 1.
 

Did25

XLDnaute Occasionnel
Bonjour sylvanu ,je ne voyait pas mon erreur et en effet, j'ai modifier ma table et tout fonctionne nickel .Mais j'en profite pour te demander comment je pourrais faire pour mettre en place un bouton associé a une macro qui me permettrait de basculer en cours d'une année choisie ,en régime 5x8 avec la formule =RECHERCHEV(MOD(J4-départ;10)+1;cycle1;2;FAUX).
Ou faut-il que je rouvre une discussion ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
En cours d'année, ça va être difficile car tout est en formules. Même par macro.

Par contre vous pouvez mettre une date (par ex en E6 qui serait départ 5x8) qui serait la date de basculement, et vous faites une seconde table Cycle5x8.
Les formules deviendrait en Z4 par ex :
VB:
=SI(Départ7x8>=Y4;RECHERCHEV(MOD(Y4-Départ7x8;196);Cycle7x8;2;FAUX);RECHERCHEV(MOD(J4-Départ5x8;10)+1;Cycle5x8;2;FAUX))
Ce qui permet d'avoir deux périodes, une en 7x8, une en 5x8 de façon automatique.
 

Did25

XLDnaute Occasionnel
Bonsoir Sylvanu ,je viens de faire un essai sur le mois de janvier mais là je suis un peu perdu ,ça ne fonctionne pas vraiment ,merci de me dire ce que j'ai foiré ,je reprendrais demain Merci
 

Pièces jointes

  • Planning 7x8.xlsm
    164.7 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Hihihi! ;)
La colonne Date est J et non I.
Départ5x8 référait à "='Calcul 7x8'!$B$14:$E$15" et non à seulement B14.
Possible en K4 :
VB:
=SI(Départ7x8>=J4;RECHERCHEV(MOD(J4-Départ7x8;196);Cycle7x8;2;FAUX);RECHERCHEV(MOD(J4-Départ5x8;10)+1;Cycle5x8;2;FAUX))
Cependant votre formule doit être fausse puisque seul Départ7x8 est utilisé et non Départ5x8.
D'autre part, comme Départ7x8=01/01/2021, toutes les dates du calendrier sont >=Départ7x8 .
 

Did25

XLDnaute Occasionnel
Bonjour Sylvanu ,je suis obligé de donner une date de départ pour le calendrier 7x8 ,car il faut qu'il soit en accord avec la trame de cycle en "bdd" et la permutation en 5x8 doit être supérieure à cette date ,ce fichier doit servir a des calculs de départ de retraite avec plusieurs critères mais l'entreprise prévoit un basculement en 5x8 au cours des prochaines années et c'est la raison pour laquelle je souhaite que mon fichier soit fonctionnel
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Alors il vous faut modifier la formule avec :
VB:
=SI(ET(J4>=Départ7x8;J4<Départ5x8);"7x8";"5x8")
Evidemment il faut remplacer 7x8 et 5x8 par les RechercheV.
En PJ un ex, on est en 7x8 du 1/1 au 7/2 puis en 5x8 au delà du 8/2.
 

Pièces jointes

  • Planning 7x8 (Exemple).xlsm
    183.9 KB · Affichages: 7

Did25

XLDnaute Occasionnel
Merci beaucoup ça marche ,par contre pour le 29 février j'utilise =SI(ESTERREUR(RECHERCHEV(MOD(CG32-départ;7)+1;cycle1;2;FAUX));0;RECHERCHEV(MOD(CG32-départ;7)+1;cycle1;2;FAUX)) comment puis- je l'adapter avec
=SI(ET(G32>=Départ7x8;G32<Départ5x8);RECHERCHEV(MOD(G32-Départ7x8;196);Cycle7x8;2;FAUX);RECHERCHEV(MOD(G32-Départ5x8;10)+1;Cycle5x8;2;FAUX))
 

Did25

XLDnaute Occasionnel
Merci beaucoup Sylvanu ,mais j'ai essayé de placer avant ma formule mais je bute ,j'ai toujours une erreur fin février
=SI(M32="";"";)=SI(ET(J32>=Départ7x8;M32<Départ5x8);RECHERCHEV(MOD(M32-Départ7x8;196);Cycle7x8;2;FAUX);RECHERCHEV(MOD(M32-Départ5x8;10);Cycle5x8;2;FAUX))
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Utilisez les balises </> ça évite les smileys. ;)
Le second SI ne doit pas être précédé d'un égal.
Essayez :
VB:
=SI(M32="";"";SI(ET(J32>=Départ7x8;M32<Départ5x8);RECHERCHEV(MOD(M32-Départ7x8;196);Cycle7x8;2;FAUX);RECHERCHEV(MOD(M32-Départ5x8;10);Cycle5x8;2;FAUX)))
 

Discussions similaires

Statistiques des forums

Discussions
315 133
Messages
2 116 602
Membres
112 801
dernier inscrit
Yaz113