[Résolu] Obtenir un jour ouvré hors férié

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
fcka
Membre OOrganisé
Membre OOrganisé
Messages : 53
Inscription : 02 févr. 2018 22:15

[Résolu] Obtenir un jour ouvré hors férié

Message par fcka »

Bonjour

Je dois ajouter 15 jours à une date (jusque là je m'en sors).

La date obtenue ne doit être ni un dimanche , ni un samedi, ni un jour férié. Si tel est le cas, je prends le 1er jour suivant qui n'est pas un samedi, un dimanche ou un jour férié.

Pour tenter de réaliser cela, je me suis servi de la fonction =serie.jour.ouvré.
J'arrive à traiter tous les cas sauf ceux où la date obtenue est un jour ouvré non férié.....

Une petite aide ne serait pas de refus.

en pj mon fichier
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par fcka le 15 juin 2019 21:39, modifié 1 fois.
HOME : (car pb avec base/postgresl avec version plus récente)
libre office Version: 6.0.6.2 (x64)
Win 8.1

DESK: (imposé)
libre office Version: 5 (x64)
Win 7
Avatar de l’utilisateur
Noonours
PassiOOnné
PassiOOnné
Messages : 501
Inscription : 11 mai 2013 00:11
Localisation : Aix en Provence

Re: Obtenir un jour ouvré hors férié

Message par Noonours »

Bonjour,
dans le fichier exemple ci-dessous, saisis la date à tester en cellule B20 (couleur de fond de cellule jaune);
J'ai modifié ton exemple afin que la date que tu saisiras génère automatiquement les jours fériés pour l'ensemble de l'année (plage B2:B12 avec un fond bleu)

La formule intermédiaire (alambiquée, je l'avoue) qui te donnera la bonne date est en cellule B21:

Code : Tout sélectionner

=B20+15+SOMMEPROD(B2:B12=(B20+15))+SI(JOURSEM(B20+15+SOMMEPROD(B2:B12=(B20+15));2)=6;2;SI(JOURSEM(B20+15+SOMMEPROD(B2:B12=(B20+15));2)=7;1;0))
Petite explication: j'ajoute 15 jours a ta date, et SOMMEPROD teste si cette date est présente dans la plage bleue (fériés) et rajoute un jour si c'est le cas; ensuite avec la fonction JOURSEM, j'ajoute encore 2 jours si on tombe un samedi, et 1 si c'est un dimanche. (afin de tomber sur le lundi suivant). Mais ce lundi peut aussi être férié donc on re-teste la présence de cette date dans la liste des fériés avec la formule en B22 qui renvoie1 si c'est un jour férié:

Code : Tout sélectionner

=SOMMEPROD(B21=B2:B12)
J'utilise pour ça deux lignes supplémentaires que j'additionne. (qui peuvent bien sûr être masquées)

Si on prend l'exemple du vendredi 15 mai 2020 comme date initiale, 15/05/2020 + 15 jours = samedi 30/5/20; on ajoute alors deux jours pour tomber sur le lundi 1er juin 2020. Or c'est le lundi de Pentecôte, on ajoute encore 1 jour. :marto: une aspirine? :lol:

Un fichier vaut mieux qu'un long discours:
test date_MOD.ods
COOordialement,
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Noonours procrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"

Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER

LibO 7.6.5.2 Stable et OpenOffice 4.1.15 sous Windows 10
Avatar de l’utilisateur
gerard24
ManitOOu
ManitOOu
Messages : 3160
Inscription : 06 juil. 2008 17:08
Localisation : dans le Périgord

Re: Obtenir un jour ouvré hors férié

Message par gerard24 »

Bonjour,
fcka a écrit :Je dois ajouter 15 jours à une date (jusque là je m'en sors).

La date obtenue ne doit être ni un dimanche , ni un samedi, ni un jour férié. Si tel est le cas, je prends le 1er jour suivant qui n'est pas un samedi, un dimanche ou un jour férié.
Plus simplement, on ajoute 14 jours à la date initiale et on prend le premier jour ouvrable suivant :

Code : Tout sélectionner

=SERIE.JOUR.OUVRE(date_départ + 14 ; 1 ; plage_fériés)
A+
OOodidacte
LibreOffice 6.4.5 sous Windows 10.
pour télécharger LibreOffice
Avatar de l’utilisateur
Noonours
PassiOOnné
PassiOOnné
Messages : 501
Inscription : 11 mai 2013 00:11
Localisation : Aix en Provence

Re: Obtenir un jour ouvré hors férié

Message par Noonours »

Gérard24 a écrit :Plus simplement [...]
Effectivement :oops:

Je m’incline devant le grand ManitOOu :super: :super:
Noonours procrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"

Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER

LibO 7.6.5.2 Stable et OpenOffice 4.1.15 sous Windows 10
fcka
Membre OOrganisé
Membre OOrganisé
Messages : 53
Inscription : 02 févr. 2018 22:15

[Résolu] Obtenir un jour ouvré hors férié

Message par fcka »

Bonjour,
ça marche !!

à Noonours et à gerard24 : merci pour votre aide.

Je n'avais même jamais pensé à calculer automatiquement les jours fériés... c'est super.

Pour la fonction SommeProd ( ) , je ne connaissais pas... malgré le super tuto https://forum.openoffice.org/fr/forum/v ... 29&t=38398 . :oops:

Pour la solution de gerard24 , effectivement c'est plus court pour la première étape.
(il faut cependant faire aussi le second test sans quoi cela ne passe pas avec le test 4 de mon fichier (date initiale : 31/7/2019)).

Encore un grand merci à vous deux. :super:
HOME : (car pb avec base/postgresl avec version plus récente)
libre office Version: 6.0.6.2 (x64)
Win 8.1

DESK: (imposé)
libre office Version: 5 (x64)
Win 7
Jeff
GourOOu
GourOOu
Messages : 9627
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: [Résolu] Obtenir un jour ouvré hors férié

Message par Jeff »

Bonjour à tous,
fcka a écrit :cela ne passe pas avec le test 4 de mon fichier (date initiale : 31/7/2019)
Non reproduit :
Capture du 2019-06-16 10-08-57.png
Si j'ajoute un férié en 16/08/19, le décalage me semble toujours conforme à tes attentes :
Capture du 2019-06-16 10-13-18.png
A +
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.