Calendrier sans les WE

Bonjour,

Je bute sur une formule de début de mois lorsqu'une semaine chevauche la fin du premier mois et le début du mois suivant.

img1

Les premiers jours (lundi et mardi) restent vides car le lundi et le mardi appartiennent au mois de janvier. Le premier jour affiché du mois de février doit être le mercredi.

Idem pour la formule du numéro de la semaine. La problématique est la même.

Merci pour vos suggestions

Cordialement

bonjour,

et la question c'est quoi ?

Bonjour Pierre,

Effectivement, j'ai omis de joindre le fichier.

C'est la formule en O3 que je n'arrive pas à mettre en place.

Merci

10calendrier-01.xlsm (17.06 Ko)

Salut,

Voici ton fichier en retour.

En espérant avoir bien compris le sujet ?

Ton problème vient de la gestion du numéro de semaine. Vaste sujet, s'il en est pour excel !

J'ai utilisé la formule NO.SEMAINE.ISO qui est disponible avec excel 2016. J'ai constaté que tu avais indiqué travailler sous excel 2010... un peu tard, je l'avoue. Tu me redis si cela passe ou pas, sinon je referai avec une autre formule de calcul de semaine. La formule NO.SEMAINE renvoie parfois des erreurs pour les semaine qui chevauche la fin et le début d'année. Les puristes diront qu'il ne faut pas l'utiliser sur les calendriers mais ici dans le cas d'un simple test de si même N° semaine alors, je pense que cela passerait. Je peux aussi utiliser autre une formule concoctée par les meilleurs d'excel.

Vaste sujet, je te disais

Pour faciliter les changements de mois, j'ai mis une liste déroulante des mois en C2.

Cordialement,

Leakim

Ps: Est-ce que tu veux faire apparaître les fériés ?

Bonjour LeaKim,

Merci pour ta proposition intéressante.

L'exemple anonymé que j'ai fourni se limitait à deux mois.

En fait mon projet global est de permettre des inscriptions par heure par jour et par semaine sur l'année.

Je souhaite faire l'année complète, trimestre par trimestre. Un onglet par trimestre.

Pour un maximum de clarté, les dates en doublons de fin de mois et de début de mois sont à proscrire.

Exemple: pour janvier 2017, je devrais avoir en semaine 5 le lundi 30/01 et le mardi 31/01. Pour le mois de février 2017 je devrais avoir en semaine 5 le mercredi 01/02 , le jeudi 02/02 et le vendredi 03/02. Cela correctement positionné dans les grilles des semaines.

Néanmoins la liste de validation montre que les numéros de semaines fonctionnent correctement.

Pour ma part, j'ai fait l'acquisition récemment d'office 2016 (je vais mettre mon profil à jour ) mais la plupart des utilisateurs de ce fichier qui devrait être en partage sur un cloud, n'auront qu'office 2010. Le partage futur de ce fichier m'impose de ne pas mettre de VBA.

Si tu as une solution qui fonctionne aussi sur office 2010, je suis preneur.

Encore merci pour ton travail.

Cordialement

Salut,

ddetp88 a écrit :

Exemple: pour janvier 2017, je devrais avoir en semaine 5 le lundi 30/01 et le mardi 31/01. Pour le mois de février 2017 je devrais avoir en semaine 5 le mercredi 01/02 , le jeudi 02/02 et le vendredi 03/02. Cela correctement positionné dans les grilles des semaines

Si je comprend bien tu veux un calendrier par semaine de jour ouvrés, en fait

Merci de me redire, et si tu veux par trimestre, pour quoi ne pas le faire de suite?

Qu'en est-il de la question des fériés ?

ddetp88 a écrit :

Le partage futur de ce fichier m'impose de ne pas mettre de VBA.

Je suis surpris de çà car ton fichier est .xlsm soit un fichier qui peut tourné avec des macro. Si tel n'est pas le besoin il faudra changer cela.

Cordialement,

Leakim

Bonjour,

J'avais commencé à travailler hier sur ton fichier, puis j'ai abandonné, trouvant trop long d'opérer sur ta configuration. Pas en forme sans doute aussi... !

Au vu de l'intervention de Leakim, j'y suis retourné...

J'ai donc repris la modification de tes formules, pour répondre au problème posé par la première ligne (non affichage des jours hors mois), et pour obtenir le minimum d'adaptations à faire en dupliquant les 3 autres trimestres. La duplication montre que c'est relativement satisfaisant...

Tout le calendrier annuel se réadapte en changeant simplement l'année sur T1.

J'ai également ajouté une plage jours fériés (nommée) sur BD en AA, et une MFC pour les fériés.

Deux remarques relatives aux formules :

1) Le problème de calcul du numéro de semaine est un vasté débat depuis l'origine, ainsi que l'a soulevé Leakim. Je faisais jusqu'à présent partie de ceux qui bannissaient l'utilisation de toute fonction Microsoft pour ce calcul... Mais je ne sais très bien pourquoi, les remarques de Leakim sur la formule de la version 2016 m'ont conduit à penser qu'il me faudrait la tester (une fois que j'aurai installé cette version). J'ai du coup été revoir mes tests antérieurs et me suis avisé que NO.SEMAINE avec le paramètre 21 en second argument donnait le bon résultat pour les dates sur lequelles j'avais jusqu'ici une anomalie résiduelle, notamment avec la fonction VBA DatePart, avec laquelle je l'avais peut-être trop vite assimilée...

J'étendrais un peu les tests avant de basculer définitivement, mais si elle donne le bon résultat pour toute date, je n'aurais plus d'objection à son utilisation. Je l'ai donc conservée (mais avec ce paramètre 21 !)

Question connexe à certains égards, le calcul de la date de Pâques : la formule utilisée est une formule approximative (valide jusqu'en 2200 seulement), ce qui me chagrine toujours un peu mais lorsqu'on ne veut pas utiliser VBA (auquel cas on peut mettre une fonction personnalisée faisant le calcul exact), une formule de calcul exact (pérenne dans le temps) de la date de Pâques occupe pour le moins 6 ou 7 lignes... (ce qui justifie de se contenter d'une approximation).

2) Tu remarqueras que j'utilise JOURSEM sans second argument. En effet, en travaillant sur des dates on utilise très souvent JOURSEM pour opérer des correctif en plus ou en moins. Pour ce faire, ce n'est pas directement JOURSEM(date) qui le permet, mais une expression : MOD(JOURSEM(date);7) qui renvoie telle quelle un numéro dans une série 0 à 6 (0 pour le samedi) mais souvent aussi en déplaçant le jour qui renverra 0 : MOD(JOURSEM(date)+x;7) ou k-MOD(JOURSEM(date)+x;7)...

Dans ces conditions, l'utilisation d'un paramètres à aligner le 1 de la série sur le lundi, est non seulement inutile mais constituerait un risque non négligeable d'erreur de formulation...

NB- Au cas primaire, en l'utilisant on s'interdit de tester de la façon la plus simple si le jour est une jour de weekend (samedi ou dimanche) par : MOD(JOURSEM(date);7)<2...

Cordialement.

Salut à vous,

Merci MFerrand de me rafraîchir la mémoire avec alternative NO.SEMAINE(...;21)

C'est vrai qu'avec l'argument "21" le numéro de semaine est bon à chaque fois. Mais on ne pense pas à l'utiliser, car si on suit l'aide on choisit l'argument 2 (semaine qui commence un lundi) mais la semaine ISO est calculée avec la première semaine de l'année qui contient un Jeudi... A savoir pourquoi?? je sais pas trop. Le fait est que c'est ainsi en Europe.

Actuellement en voyage, j'en oublie les fondamentaux, merci pour ce rappel utile

Merci également, pour l'utilisation de la variable colonne() pour définir le mois là encore j'avais mis cela de coté

Je pense que ta mise en forme par trimestre est bonne, mais si j'ai bien compris le besoin de ddetp88, il lui faut des semaines pleines.

attendons ses commentaires.

Cordialement,

Leakim

Bonjour MFerrand et leaKim,

Du grand Art en excel.

Non seulement c'est vraiment ce que je souhaitais mais en plus vous êtes allés au delà de ma demande avec les jours fériés.

Un plus apprécié

Pour le xlsm, j'avais tenté avec du code certaines choses mais ça ne pouvait satisfaire.

Vous êtes supers!

Grand merci à vous deux.

Je teste un peu mieux tout à l'heure et je pourrai clore la question.

Cordialement

leakim a écrit :

mais la semaine ISO est calculée avec la première semaine de l'année qui contient un Jeudi... A savoir pourquoi??

Leakim

Ça, ce n'est pas mystérieux : une semaine est rattachée à l'année calendaire qui en contient le plus grand nombre de jours. Mais la grande différence est que dans le système ISO on rattache toute la semaine à une année et en définissant un système de gestion basé sur la semaine on définit simultanément une année ISO qui a soit 364 jours, soit 371.

Cordialement.

Un seul mot MERCI!

Tout fonctionne. Je suis en train de revoir la mise en page et faire des tableaux récapitulatifs d'horaires.

J'aurai un peu de temps samedi pour terminer le projet.

Je le mettrai en ligne au cas où d'autres seraient intéressés.

Cordialement et merci aussi pour les explications données par MFerrand

Salut,

Ravi de voir que tout va pour le mieux.

Je te remercie Mferrand pour tes compléments d'informations ! Je continu mon apprentissage

Leakim

Bonjour,

Comme promis, voici deux fichiers avec un petit tutoriel.

Le premier est basé sur l’année civile alors que le deuxième est basé sur l’année scolaire.

Merci encore à MFerrand et LeaKim pour leurs contributions.

Bon réveillon à tous.

Cordialement

Rechercher des sujets similaires à "calendrier"