[Résolu]gestion calendrier

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.
MLAR
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 16 juil. 2018 10:25

[Résolu]gestion calendrier

Message par MLAR »

Bonjour,

Dans la « Feuille1 », j’ai un tableau pour gérer seulement les mercredis des semaines scolaires (fichier joint).
Dans ce tableau sont exclus les mercredis tombant pendant les vacances scolaires ou étant fériés.

Dans la feuille « Fériés et vacances scolaire » sont renseignés chronologiquement dans la colonne » j « tous les jours non scolaires (vacances et jours fériés).
"Feuille1" les colonnes « d » à « L » renvoient ces mercredis. Hors ma fonction ne marche pas parfaitement. En effet, dès que la condition rencontre un mercredi fériés il saute au jeudi suivant ainsi de suite.

Je pense que ma fonction n’est complète et je ne sais pas comment faire pour ne récupérer que ces mercredis sans erreur.
Merci.
Cordialement,
Michel
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 19 juil. 2018 15:25, modifié 2 fois.
Raison : [Résolu] remplace [résolu]
Open Office 4.1.5
Syst??me d'exploitation : Windows 10
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: gestion calendrier

Message par Jean-Louis Cadeillan »

Bonjour,
Je n'ai pas repris ta formule, n'arrivant pas à l'adapter correctement, mais je suis reparti de ta plage nommée "fériés", puis j'ai créé une formule nommée (qui se crée comme une plage nommée), "MercredisOuvrés" :

Code : Tout sélectionner

SI(ESTERR(PETITE.VALEUR(SI(ESTNA(EQUIV(43341+7*LIGNE($A$1:$A$48);SI(JOURSEM(fériés;2)<>3;"";fériés);0));43341+7*LIGNE($A$1:$A$48);"");LIGNE($A1:$A$48)));"";PETITE.VALEUR(SI(ESTNA(EQUIV(43341+7*LIGNE($A$1:$A$48);SI(JOURSEM(fériés;2)<>3;"";fériés);0));43341+7*LIGNE($A$1:$A$48);"");LIGNE($A$1:$A$48)))
qui se simplifie, si on enlève le contrôle d'erreur par :

Code : Tout sélectionner

PETITE.VALEUR(SI(ESTNA(EQUIV(43341+7*LIGNE($A$1:$A$48);SI(JOURSEM(fériés;2)<>3;"";fériés);0));43341+7*LIGNE($A$1:$A$48);"");LIGNE($A1:$A$48))
Voici les parties de cette formule :

Code : Tout sélectionner

=SI(JOURSEM(fériés;2)<>3;"";fériés)
retourne les mercredis fériés.

Code : Tout sélectionner

=43341+7*LIGNE(A1:A48)
retourne tous les mercredis de l'année (43341 est l'écriture numérique du 29/08/18, jour -7 du démarrage des mercredis).

Code : Tout sélectionner

=SI(ESTNA(EQUIV(43341+7*LIGNE(A1:A48);SI(JOURSEM(fériés;2)<>3;"";fériés);0));43341+7*LIGNE(A1:A48);"")
retourne uniquement les mercredis ouvrés grâce à EQUIV() qui cherche dans chaque mercredi de l'année s'il est férié ou non. Quand EQUIV() ne trouve pas le mercredi en cours dans la liste des mercredis fériés, il retourne #N/A, qui est testé par la fonction ESTNA().
PETITE.VALEUR() les remonte en haut de la liste.
Ensuite, en D3 de Feuille1, il suffit de mettre :

Code : Tout sélectionner

=INDEX(MercredisOuvrés;COLONNE(A1))
de la valider par Ctrl+Maj+Entrée (formule matricielle) et de tirer vers la droite (en appuyant sur Ctrl).
Remarque : la colonne P de la feuille "Fériés et vacances" peut être supprimée, puisque la formule est logée dans MercredisOuvrés. Les colonnes M à O peuvent aussi être supprimées, je les ai gardées pour que tu vois comment j'ai construit la formule.
Voir ci-joint.
Cordialement,
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Jean-Louis Cadeillan le 19 juil. 2018 15:11, modifié 1 fois.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
MLAR
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 16 juil. 2018 10:25

Re: gestion calendrier

Message par MLAR »

Bonjour Jean-Louis,

C'est parfait, exactement ce que je voulais.

Merci encore.
:bravo:
Cordialement,

Michel
Open Office 4.1.5
Syst??me d'exploitation : Windows 10
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: [résolu]gestion calendrier

Message par Jean-Louis Cadeillan »

Tant mieux. Si tu dois t'en servir pour d'autres années, n'oublie pas de changer 43341, qui aurait pu être stocké dans une cellule (en y faisant référence dans la formule), d'ailleurs, même sous forme de date. Calc travaille en interne les dates en nombre entier de jours depuis le 30/12/1899, d'où la valeur 43341.
Cordialement,
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1