Fonction NB.JOURS.OUVRES

Le
AndréBdR
J'aurais besoin d'un petit coup de main.
Dans la fonction dont la syntaxe est:
NB.JOURS.OUVRES(date-début;date_fin;jours_fériés)
j'essaie de lister les jours fériés à la queue leu-leu, sans les positionner sur une grille d'Excel
comme dans l'exemple de base de Microsoft, mais avec:
* la Fonction DATE(a,m,j) pour les jours fériés connus (n fois)
* la belle Formule citée par Laurent Longre pour les jours qui découlent du calcul de Pâques, genre:
=FRANC((JOUR(MINUTE(A/38)/2+55)&"/4/"&A)/7;)*7-5 pour la localisation du Lundi de Pâques.
et je n'y arrive pas, mais je suppose que c'est possible.
Merci d'avance pour toute info débloquante.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #19786431
Bonjour.
Pour le 1., tu vas avoir du mal...
Pour le calcul du jour de Pâques, regarde là :
http://www.excelabo.net/exemples/paques
Daniel

J'aurais besoin d'un petit coup de main.
Dans la fonction dont la syntaxe est:
NB.JOURS.OUVRES(date-début;date_fin;jours_fériés)
j'essaie de lister les jours fériés à la queue leu-leu, sans les positionner
sur une grille d'Excel comme dans l'exemple de base de Microsoft, mais avec:
* la Fonction DATE(a,m,j) pour les jours fériés connus (n fois)
* la belle Formule citée par Laurent Longre pour les jours qui découlent du
calcul de Pâques, genre:
=FRANC((JOUR(MINUTE(A/38)/2+55)&"/4/"&A)/7;)*7-5 pour la localisation du
Lundi de Pâques.
et je n'y arrive pas, mais je suppose que c'est possible.
Merci d'avance pour toute info débloquante.


Caetera
Le #19786611
> Dans la fonction dont la syntaxe est:
NB.JOURS.OUVRES(date-début;date_fin;jours_fériés)
j'essaie de lister les jours fériés à la queue leu-leu, sans les positionner
sur une grille d'Excel comme dans l'exemple de base de Microsoft, mais avec:
* la Fonction DATE(a,m,j) pour les jours fériés connus (n fois)
* la belle Formule citée par Laurent Longre pour les jours qui découlent du
calcul de Pâques, genre:
=FRANC((JOUR(MINUTE(A/38)/2+55)&"/4/"&A)/7;)*7-5 pour la localisation du
Lundi de Pâques.
et je n'y arrive pas, mais je suppose que c'est possible.



********************

S'il s'agit d'une date de début et de fin dans la même année :
=NB.JOURS.OUVRES(Déb;Fin;)-ET(Déb>ÚTE(An;1;1);DATE(An;1;1)<=Fin;JOURSEM(DATE(An;1;1);2)<6)-ET(Déb>ÚTE(An;1;1);FRANC((JOUR(MINUTE(An/38)/2+55)&"/4/"&An)/7;)*7-5<=Fin;JOURSEM(FRANC((JOUR(MINUTE(An/38)/2+55)&"/4/"&An)/7;)*7-5;2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;5;1)<=Fin;JOURSEM(DATE(An;5;1);2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;5;8)<=Fin;JOURSEM(DATE(An;5;8);2)<6)-ET(Déb>ÚTE(An;1;1);38+FRANC((JOUR(MINUTE(An/38)/2+55)&"/4/"&An)/7;)*7-5<=Fin;JOURSEM(38+FRANC((JOUR(MINUTE(An/38)/2+55)&"/4/"&An)/7;)*7-5;2)<6)-ET(Déb>ÚTE(An;1;1);49+FRANC((JOUR(MINUTE(An/38)/2+55)&"/4/"&An)/7;)*7-5<=Fin;JOURSEM(49+FRANC((JOUR(MINUTE(An/38)/2+55)&"/4/"&An)/7;)*7-5;2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;7;14)<=Fin;JOURSEM(DATE(An;7;14);2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;8;15)<=Fin;JOURSEM(DATE(An;8;15);2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;11;1)<=Fin;JOURSEM(DATE(An;11;1);2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;11;11)<=Fin;JOURSEM(DATE(An;11;11);2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;12;25)<=Fin;JOURSEM(DATE(An;12;25);2)<6)

Voir aussi sans la fonction NB.JOURS.OUVRES
http://www.cijoint.fr/cjlink.php?file=cj200907/cijooinU0z.xls

Etc
AndréBdR
Le #19786981
Ouah!!!!
Bon, je vais me donner le temps d'adapter et de comprendre ce beau roman.
En attendant, chapeau et merci.

"Caetera"
Dans la fonction dont la syntaxe est:
NB.JOURS.OUVRES(date-début;date_fin;jours_fériés)
j'essaie de lister les jours fériés à la queue leu-leu, sans les positionner sur une grille
d'Excel comme dans l'exemple de base de Microsoft, mais avec:
* la Fonction DATE(a,m,j) pour les jours fériés connus (n fois)
* la belle Formule citée par Laurent Longre pour les jours qui découlent du calcul de Pâques,
genre:
=FRANC((JOUR(MINUTE(A/38)/2+55)&"/4/"&A)/7;)*7-5 pour la localisation du Lundi de Pâques.
et je n'y arrive pas, mais je suppose que c'est possible.



********************

S'il s'agit d'une date de début et de fin dans la même année :
=NB.JOURS.OUVRES(Déb;Fin;)-ET(Déb>ÚTE(An;1;1);DATE(An;1;1)<=Fin;JOURSEM(DATE(An;1;1);2)<6)-ET(Déb>ÚTE(An;1;1);FRANC((JOUR(MINUTE(An/38)/2+55)&"/4/"&An)/7;)*7-5<=Fin;JOURSEM(FRANC((JOUR(MINUTE(An/38)/2+55)&"/4/"&An)/7;)*7-5;2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;5;1)<=Fin;JOURSEM(DATE(An;5;1);2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;5;8)<=Fin;JOURSEM(DATE(An;5;8);2)<6)-ET(Déb>ÚTE(An;1;1);38+FRANC((JOUR(MINUTE(An/38)/2+55)&"/4/"&An)/7;)*7-5<=Fin;JOURSEM(38+FRANC((JOUR(MINUTE(An/38)/2+55)&"/4/"&An)/7;)*7-5;2)<6)-ET(Déb>ÚTE(An;1;1);49+FRANC((JOUR(MINUTE(An/38)/2+55)&"/4/"&An)/7;)*7-5<=Fin;JOURSEM(49+FRANC((JOUR(MINUTE(An/38)/2+55)&"/4/"&An)/7;)*7-5;2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;7;14)<=Fin;JOURSEM(DATE(An;7;14);2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;8;15)<=Fin;JOURSEM(DATE(An;8;15);2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;11;1)<=Fin;JOURSEM(DATE(An;11;1);2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;11;11)<=Fin;JOURSEM(DATE(An;11;11);2)<6)-ET(Déb>ÚTE(An;1;1);DATE(An;12;25)<=Fin;JOURSEM(DATE(An;12;25);2)<6)

Voir aussi sans la fonction NB.JOURS.OUVRES
http://www.cijoint.fr/cjlink.php?file=cj200907/cijooinU0z.xls

Etc




AndréBdR
Le #19793151
Bon.
J'ai bien ramé...
Et,quand j'ai bien compris, j'ai inséré ton raisonnement dans mon contexte en appliquant les choses
suivantes:
* la date de début est en A1
* la date de fin est en A2
* elles sont en principe dans la même année, et c'est vérifié dans toutes les lignes de la formule,
comme est vérifié que A2 est plus grand que A1 etc
* je vérifie que tous les jours fériès, fixes ou mobiles, sont bien dans la fourchette début/fin,
c'est indispensable et vérifié dans toutes les lignes
* je vérifie si les jours fériés fixes sont bien L/M/M/J/V selon ta méthode
* pas la peine de vérifier pour les trois jours fériés mobiles car ils entrent forcément dans la
marmite
et bien content, je vais préparer mon pastis ... même si ce n'est pas tout à fait l'heure.
J'ai vérifié un max, mais il y a peut-être des possibilités d'erreurs que je n'ai pas vues.
Si oui, merci de me les faire savoir.

=NB.JOURS.OUVRES(A1;A2)-ET(A1>ÚTE(ANNEE(A1);1;1);A2>A1;ANNEE(A1)=ANNEE(A2);DATE(ANNEE(A1);1;1)>¡;DATE(ANNEE(A1);1;1)
Caetera
Le #19793251
> J'ai vérifié un max, mais il y a peut-être des possibilités d'erreurs que je
n'ai pas vues.



**************

Il te suffit de :

1) Sélectionner la cellule (formule) > édition > remplacer > "Déb" par "A1" et
"Fin" par "A2"
2) Redéfinir le nom "An" en lui faisant faire référence à A1 : An =ANNEE(A1)
Tu ne peux pas (ce qui serait logique) remplacer directement dans la formule
"An" par "ANNEE(A1)" car la formule sera refusée à la validation : trop longue
(limite : 1024 caractères) !

Etc
AndréBdR
Le #19793471
Je me suis sans doute mal exprimé.
Heuh! c'est pourtant du bien digéré, et ça marche.
A tout hasard, je remets ci-dessous la formule que j'ai adaptée ici, à l'os, en toute bonne foi.

=NB.JOURS.OUVRES(A1;A2)-ET(A1>ÚTE(ANNEE(A1);1;1);A2>A1;ANNEE(A1)=ANNEE(A2);DATE(ANNEE(A1);1;1)>¡;DATE(ANNEE(A1);1;1)
Caetera
Le #19794071
> A tout hasard, je remets ci-dessous la formule que j'ai adaptée ici, à l'os,
en toute bonne foi.



Remplacer "An" par ANNEE(A1) moi je veux bien mais je me demande comment tu fais
pour passer une formule de 1565 caractères... (voir message précédent)
Et ça marche ?
Sous Excel quelle version ?

Etc
AndréBdR
Le #19794271
Tu penses bien que je ne t'aurais pas dit que ça marche si ça ne marchait pas.
J'ai Excel d'Office 2007.
C'est peut-être là la clé du bonheur.
En fait, j'aime faire des petits coups comme ça pour des copains de Club, qui sont souvent assez
détachés des fines subtilités d'Excel mais qui aiment l'utiliser, et à qui je n'envisagerais pas de
dire quelle galipette il faut faire pour récupérer dans une formule une valeur non écrite d'emblée.
Ta remarque me montre bien que je n'avais pas du tout pensé à cette limite avant que tu ne me le
dises, et que mes amis risquent de rencontrer des problèmes avec la solution que j'ai adaptée et que
je vais leur donner, même si c'est la version d'Excel qui fait la différence et qu'ils n'ont
certainement pas tous.
On verra bien.
Mais ça promet des discussions.
C'est sympa d'avoir suivi l'affaire comme tu l'as fait.
Bien à toi.
.

"Caetera"
A tout hasard, je remets ci-dessous la formule que j'ai adaptée ici, à l'os, en toute bonne foi.



Remplacer "An" par ANNEE(A1) moi je veux bien mais je me demande comment tu fais pour passer une
formule de 1565 caractères... (voir message précédent)
Et ça marche ?
Sous Excel quelle version ?

Etc



Daniel.C
Le #19794381
Bonjour.
Je n'ai pas compris pourquoi tu ne voulais pas lister les jours fériés
sur une feuille, visible ou non ?
Daniel

Tu penses bien que je ne t'aurais pas dit que ça marche si ça ne marchait
pas.
J'ai Excel d'Office 2007.
C'est peut-être là la clé du bonheur.
En fait, j'aime faire des petits coups comme ça pour des copains de Club, qui
sont souvent assez détachés des fines subtilités d'Excel mais qui aiment
l'utiliser, et à qui je n'envisagerais pas de dire quelle galipette il faut
faire pour récupérer dans une formule une valeur non écrite d'emblée.
Ta remarque me montre bien que je n'avais pas du tout pensé à cette limite
avant que tu ne me le dises, et que mes amis risquent de rencontrer des
problèmes avec la solution que j'ai adaptée et que je vais leur donner, même
si c'est la version d'Excel qui fait la différence et qu'ils n'ont
certainement pas tous.
On verra bien.
Mais ça promet des discussions.
C'est sympa d'avoir suivi l'affaire comme tu l'as fait.
Bien à toi.
.

"Caetera"
A tout hasard, je remets ci-dessous la formule que j'ai adaptée ici, à
l'os, en toute bonne foi.



Remplacer "An" par ANNEE(A1) moi je veux bien mais je me demande comment tu
fais pour passer une formule de 1565 caractères... (voir message précédent)
Et ça marche ?
Sous Excel quelle version ?

Etc





AndréBdR
Le #19794871
C'est sans doute un peu personnel, mais je pense qu'il y a une certaine poésie à tout mettre dans
une seule phrase, surtout si c'est une belle équation ...
Salut à toi Daniel.
.

"Daniel.C"
Bonjour.
Je n'ai pas compris pourquoi tu ne voulais pas lister les jours fériés sur une feuille, visible ou
non ?
Daniel

Tu penses bien que je ne t'aurais pas dit que ça marche si ça ne marchait pas.
J'ai Excel d'Office 2007.
C'est peut-être là la clé du bonheur.
En fait, j'aime faire des petits coups comme ça pour des copains de Club, qui sont souvent assez
détachés des fines subtilités d'Excel mais qui aiment l'utiliser, et à qui je n'envisagerais pas
de dire quelle galipette il faut faire pour récupérer dans une formule une valeur non écrite
d'emblée.
Ta remarque me montre bien que je n'avais pas du tout pensé à cette limite avant que tu ne me le
dises, et que mes amis risquent de rencontrer des problèmes avec la solution que j'ai adaptée et
que je vais leur donner, même si c'est la version d'Excel qui fait la différence et qu'ils n'ont
certainement pas tous.
On verra bien.
Mais ça promet des discussions.
C'est sympa d'avoir suivi l'affaire comme tu l'as fait.
Bien à toi.
.

"Caetera"
A tout hasard, je remets ci-dessous la formule que j'ai adaptée ici, à l'os, en toute bonne
foi.



Remplacer "An" par ANNEE(A1) moi je veux bien mais je me demande comment tu fais pour passer une
formule de 1565 caractères... (voir message précédent)
Et ça marche ?
Sous Excel quelle version ?

Etc










Publicité
Poster une réponse
Anonyme