Pb formule

Bonjour,

Je reviens vers vous pour résoudre la formule suivante :

=SI(C7=0;"";SI(OU(C7="1/2 congé matin";C7="1/2 RTT matin";C7="1/2 congé am";C7="1/2 RTT am");NB.JOURS.OUVRES(D7;E7;jfdate)-(0,5*NB.JOURS.OUVRES(D7;E7;jfdate));NB.JOURS.OUVRES(D7;E7;jfdate))-(SI(RECHERCHEV($B7;statut;2;0)="H";SOMMEPROD((JOURSEM(LIGNE(INDIRECT(D7&":"&E7)))=4)*(NB.SI(vacfer;LIGNE(INDIRECT(D7&":"&E7)))=0));0)))

D7= date de début

E7= date de fin

jfdate = liste des jours fériés

vacfer = liste des vacances scolaire

Statut : "H" pour personnel horaire et "M" pour personnel mensuel.

La formule me permet de calculer les jours d'absences.

Lorsque le personnel est mensuel, la formule me donne le bon nombre de jours.

En revanche lorsque le personnel est horaire, la formule ne fonctionne pas : ça me déduit bien les mercredi (les "H" ne travaillent pas le mercredi), mais je n'arrive pas à trouver la bonne formule pour qu'il me déduise également les vacances scolaire (puisque les "H" ne travaillent pas non plus pendant les vacances scolaires).

Merci d'avance, je commence à m'arracher les cheveux.

Salut Fred777,

Sans un bout de fichier, ça va être difficile...

car il faut que l'on puisse tester en même temps

A+

Bonjour BrunoM45,

Ci-joint le fichier.

Merci d'avance pour tes lumières.

8absences.zip (147.03 Ko)

Re,

Je pense avoir trouvé la bonne formule, c pas simple avec un truc à rallonge

En G7

=SI(C7=0;"";SI(OU(C7="1/2 congé matin";C7="1/2 RTT matin";C7="1/2 congé am";C7="1/2 RTT am");NB.JOURS.OUVRES(D7;E7;jfdate)-(0,5*NB.JOURS.OUVRES(D7;E7;jfdate));NB.JOURS.OUVRES(D7;E7;jfdate))-(SI(RECHERCHEV($B7;statut;2;0)="H";SOMMEPROD((JOURSEM(LIGNE(INDIRECT(D7&":"&E7)))=4)*(NB.SI(vacfer;LIGNE(INDIRECT(D7&":"&E7)))=0))+SOMMEPROD((NB.SI(vsdates;LIGNE(INDIRECT(D7&":"&E7)))<>0)*1);0)))

A+

Merci BrunoM45,

La formule fonctionne nickel.

Merci beaucoup

Bonne journée.

Salut Fred777

N'oublie pas de valider RESOLU sur ton fil

Au plaisir

Bonjour BrunoM45,

Au risque d'abuser, j'aimerai ajouter une autre condition mais je ne parviens pas à l'imbriquer à celle-ci.

En fait, si le statut est "HM", je souhaiterais avoir le même résultat que pour les "H" mais sans me déduire les mercredi.

J'ai bien essayé mais rien à faire.

Merci d'avance.

Cordialement,

Salut Fred777

Maurice, tu pousses le bouchon un p'tit peu loin ....

Voici la formule

=SI(C7=0;"";SI(OU(C7="1/2 congé matin";C7="1/2 RTT matin";C7="1/2 congé am";C7="1/2 RTT am");NB.JOURS.OUVRES(D7;E7;jfdate)-(0,5*NB.JOURS.OUVRES(D7;E7;jfdate));NB.JOURS.OUVRES(D7;E7;jfdate))-(SI(RECHERCHEV($B7;statut;2;0)="H";SOMMEPROD((JOURSEM(LIGNE(INDIRECT(D7&":"&E7)))=4)*(NB.SI(vacfer;LIGNE(INDIRECT(D7&":"&E7)))=0))+SOMMEPROD((NB.SI(vsdates;LIGNE(INDIRECT(D7&":"&E7)))<>0)*1);SI(RECHERCHEV($B7;statut;2;0)="HM";SOMMEPROD((NB.SI(vacfer;LIGNE(INDIRECT(D7&":"&E7)))=0))+SOMMEPROD((NB.SI(vsdates;LIGNE(INDIRECT(D7&":"&E7)))<>0)*1);0))))

Aux vues de la longueur de cette formule, il serait peut-être souhaitable de la transcrire en VBA avec une fonction personnalisée !?

A+

Merci BrunoM45,

Désolé d'avoir abusé.

La formule fonctionne super bien.

Merci infiniment,

Bonne fin de journée et bon week-end.

BrunoM45,

D'accord avec toi sur la transcription de la formule en vba, hélas je crois que mes compétences en vba ne me le permettent pas.

Re,

Ne t'inquiète pas, je regarde ça dès que j'ai 30 mns

A+

Rechercher des sujets similaires à "formule"