[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.

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

Messagepar fcka » 14 Juin 2019 23:02

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
Pièces jointes
test date.ods
(19.01 Kio) Téléchargé 15 fois
Dernière édition par fcka le 15 Juin 2019 22:39, édité 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
fcka
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 53
Inscrit le : 02 Fév 2018 23:15

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

Messagepar Noonours » 15 Juin 2019 02:04

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   AgrandirRéduire
=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   AgrandirRéduire
=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
(19.36 Kio) Téléchargé 19 fois


COOordialement,
Noonours plantigrade râleur

Pour obtenir la réponse la plus précise possible, N’HÉSITEZ SURTOUT PAS À JOINDRE UN FICHIER

LibO 6.2.8.2 sous Windows 10
LibO 5.0.6.3 (obligation de version) sous Win 7
Avatar de l’utilisateur
Noonours
Membre cOOnverti
Membre cOOnverti
 
Message(s) : 319
Inscrit le : 11 Mai 2013 01:11
Localisation : Aix en Provence

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

Messagepar gerard24 » 15 Juin 2019 09:59

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   AgrandirRéduire
=SERIE.JOUR.OUVRE(date_départ + 14 ; 1 ; plage_fériés)


A+
OOodidacte
LibreOffice 6.2.8 sous Windows 10.
pour télécharger LibreOffice
Avatar de l’utilisateur
gerard24
ManitOOu
ManitOOu
 
Message(s) : 3135
Inscrit le : 06 Juil 2008 18:08
Localisation : dans le Périgord

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

Messagepar Noonours » 15 Juin 2019 14:09

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

Effectivement :oops:

Je m’incline devant le grand ManitOOu :super: :super:
Noonours plantigrade râleur

Pour obtenir la réponse la plus précise possible, N’HÉSITEZ SURTOUT PAS À JOINDRE UN FICHIER

LibO 6.2.8.2 sous Windows 10
LibO 5.0.6.3 (obligation de version) sous Win 7
Avatar de l’utilisateur
Noonours
Membre cOOnverti
Membre cOOnverti
 
Message(s) : 319
Inscrit le : 11 Mai 2013 01:11
Localisation : Aix en Provence

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

Messagepar fcka » 15 Juin 2019 22:38

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 viewtopic.php?f=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
fcka
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 53
Inscrit le : 02 Fév 2018 23:15

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

Messagepar Jeff » 16 Juin 2019 09:14

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
Cliquer sur l'image pour zoomer

Cellule B21 nommée date_départ
Plage B2:B12 nommée plage_fériés


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
Cliquer sur l'image pour zoomer


A +
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.7 sur Debian Stable LXDE i686 10.2 (buster) et sur Win 10 pro x64
Jeff
GourOOu
GourOOu
 
Message(s) : 8188
Inscrit le : 18 Sep 2006 10:40
Localisation : France


Retour vers Tableur

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Google [Bot] et 30 invité(s)