Jours ouvrés dans BO

Fermé
janice - 15 avril 2009 à 12:02
 Gavani - 6 juil. 2022 à 11:43
Bonjour,
Comment peut-on faire pour calculer un nombre de jours ouvrés (equivalent de la fonction EXCEL NB.JOURS.OUVRES) dans Business Object ?
Merci d'avance pour vos réponses

4 réponses

Bonjour,

je sais que c'est tard, mais j'ai également cherché à réaliser ce calcul dans BO et voici la solution que j'ai mis en place. Par contre elle ne gère pas les jours fériés :

Pour calculer le nb de jours ouvrés entre la Date N°1 et la Date N°2 :
Création des 3 variables suivantes :
[Jour de début] = NuméroDuJourDeLaSemaine([Date N°1])
[Jour de fin] = NuméroDuJourDeLaSemaine([Date N°2])
[Jour Entre] = JoursEntre([Date N°1];[Date N°2])

Nb de jours ouvrés entre la Date N° 1 et la Date N°2
=Si(Mod([Jour Entre]+[Jour de début]-[Jour de fin];7)=0;[Jour Entre]-(([Jour Entre]+[Jour de début]-[Jour de fin])/7)*2; [Jour Entre]-(Tronquer(([Jour Entre]+[Jour de début]-[Jour de fin])/7;0)+1)*2)

Bon courage à tous.
3
A modifier en fonction des we, prendre un ex sur un samedi en jour de début et un mardi en date de fin, le nbre de jo n'est pas correct. Néanmoins, la solution est proche et c'est une très bonne piste, merci!
0
Bonjour,

J'airencontré le même pb et j'ai trouvé une solution de contournement (pas optimale pour le moment) pour ôter au moins les week-ends.
J'ai une première colonne avec où j'ai éditer une variable avec la fonction "jours entre" qui me donne mon nombre de jours total. Variable Jours : =JoursEntre(<Date max> ,DateActuelle())
Dans la deuxième colonne, j'ai créé une variable qui me donne le nombre de semaine correspondant à mon nombre de jours. J'ai utilisé la fonction "tronque" avec 0 décimale pour avoir juste le nombre de semaines entières. Variable semaine =Tronque((<Jours>/7) ,0)
Puis une colonne avec un nombre approximatif de jours ouvrés puisque les jours fériés ne sont pas déduits. =<Jours>-(<semaine>*2)
0
Bonjour,
Merci pour votre réponse.
C'est un peu comme j'ai fait (en utiliasnt la fonction Joursentre). Par contre, ce que tu donnes n'est qu'une estimation, mais nous malheureusement on nous demande d'être bcp + précis !! J'ai donc multiplié les variables pour calculer véritablement en fonction du n° du jour de la semaine, le nombre de jours avec tous les cas possibles si plus d'une semaine entre jour début et jour fin ou moins d'une semaine. Reste encore les jours fériés : encore, les fixes, je pense que je vais pouvoir m'en sortir, mais pour les variables, tu fais comment ?
0
Bonjour Janice,

Je suis aujourd'hui confronté au même problème que vous dans BO.
J'ai lu votre échange sur le sujet et si j'ai bien compris vous avez trouvé une solution plus précise que la solution proposée...

Pouvez-vous s'il vous plaît m'expliquer comment vous avez fait.


Merci d'avance pour votre aide.
0
janice > max
13 nov. 2009 à 11:50
Bonjour Max,
Malheureusement ma solution est très complexe et je vais avoir du mal à vous l'expliquer en détail, en plus ce rapport BO a été fait il y a déjà pas mal de temps et il faudrait que je me replonge dedans !!
En gros j'ai utilisé les fonctions :
- Semaine (n° de la semiane)
- JoursEntre (nombre de jours entre 2 date)
- NumeroDuJourDeLaSemaine
Avec plein de tests sur les dates de début et de fin afin de déterminer si plus d'1 semaine ou non entre les 2 etc...
Je ne suis pas allée jusqu'à déduire les jours fériés...

Mais bon je trouve que tout ça demande une usine à gaz alors que dans Excel la formule existe déjà !!
Je trouve fou qu'il n'y ai pas d'équivalence dans BO...

Bon courage !
Janice
0
Bonjour
C'est un vieux post, mais ayant galéré sur le sujet, voici ce que j'ai fait. Mon problème était de calculer une date d'échéance en fonction de la date du jour en sachant qu'il fallait prendre que les jours ouvrés.
J'ai listé tout les jours fériés sans prendre ceux qui tombait le WE. J'ai pris leur quantième(numéro du jour dans l'année) et pour mon calcul, je mettais en condition si un des jour appartenait à cette liste....etc.... Mon état BO fonctionne mais bon il faudra que je mette à jour la liste tout les ans.
Une autre solution serait de passer par une fonction sql et récupérer son résultat dans BO. Voila Voila.
0