Microsoft 365 Demande d'aide pour MFC sur cellules contenant des dates

LAETI-TOINOU

XLDnaute Occasionnel
Bonjour les expert, bonjour la communauté,

Je reviens une nouvelle fois vers vous pour que vous m'apportiez votre aide précieuse sur une formule qui me pose problème.

En effet, dans le cadre de mon association, j'ai commencé un calendrier des manifestation pour 2023.

Sur ce tableau, j'aimerais "automatiser" le format de cellules, via des MFC.

- Pour les week-ends, ça semble fonctionner,
- Pour les vacances scolaires, ça semble fonctionner également.
- Pour les jours fériés, ça ne fonctionne pas. Seul le 1er janvier fonctionne.

Pour la forme du calendrier, je suis partie du document de base que j'utilise tous les ans.
Pour l'onglet "JF et V Scol", je suis repartie d'un onglet que j'avais récupéré d'un précédent fichier.

Merci d'avance pour votre aide.

Bonne journée ensoleillée.


Laëtitia
 

Pièces jointes

  • CF - CALENDRIER DES MANIFESTATIONS 2023 - V3.xlsx
    189.7 KB · Affichages: 14

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous, bonjour @LAETI-TOINOU
Comme tu me le demandais dans ton post #11 :
Peux-tu, malgré tout, m'expliquer un peu le détail des formules de MFC, que je les comprenne pour les reproduire ?
J'ai ajouté un mémo au fichier avec des explications sur les noms utilisés et les formules des MFC (elles utilisent principalement le nom _Date)

Amicalement
Alain
 

Pièces jointes

  • MFC sur cellules contenant des dates.xlsx
    185.4 KB · Affichages: 4

AtTheOne

XLDnaute Accro
Supporter XLD
Re
C'est vrai en regardant comment faire par formule, j'ai constaté cet écart.
Le plus simple serait d'ajouter les ponts à la liste des jours fériés et de les identifier par le mot "Pont".

Mais tels qu'ils sont là (dans une plage de vacances), mon idée est de rechercher le mot Pont dans les vacances, de n'appliquer le format qu'aux jours hors week-end encadrés par un jour de week-end et un jour férié.
On peut sans doute se limiter à un jour, hors week-end dans des vacances "Pont" ...

Bref je cherche pour n'ajouter qu'une MFC..
A bientôt
Alain
 
Dernière édition:

AtTheOne

XLDnaute Accro
Supporter XLD
Bonsoir à toutes & à tous, @LAETI-TOINOU , @job75
On joue à se gratter les méninges :

Du coup j'ai revu aussi la MFC des jours fériés (texte rouge pour les 2 premières colonnes, fond bleu clair pour les 4 colonnes) => une MFC en plus
et j'ai ajouté pour les ponts 2 MFC (même principe que pour les jour fériés mais textes en vert) en appliquant l'idée :
mon idée est de rechercher le mot Pont dans les vacances, de n'appliquer le format qu'aux jours hors week-end encadrés par un jour de week-end et un jour férié.

Çà à l'air de fonctionner ... avec 7 MFC au total !

Amicalement
Alain
 

Pièces jointes

  • MFC sur cellules contenant des dates (avec ponts).xlsx
    187.1 KB · Affichages: 3
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour LAETI-TOINOU, AtTheOne, le forum,

J'ai revu l'histoire des ponts.

Dans ce fichier (5) ceux du vendredi et du lundi sont colorés en rouge avec une police blanche :
VB:
            If Weekday(r, 2) = 5 Then If IsNumeric(Application.Match(CLng(r - 1), ferie, 0)) Then _
                .Color = vbRed: r(1, 0).Resize(, 4).Font.Color = vbWhite: If r(1, 2) = "" Then r(1, 2) = "Pont"
            If Weekday(r, 2) = 1 Then If IsNumeric(Application.Match(CLng(r + 1), ferie, 0)) Then _
                .Color = vbRed: r(1, 0).Resize(, 4).Font.Color = vbWhite: If r(1, 2) = "" Then r(1, 2) = "Pont"
Pour 2023 il y a les ponts de l'Ascension et du 15 août.

A+
 

Pièces jointes

  • CF - CALENDRIER DES MANIFESTATIONS 2023(5).xlsm
    204.8 KB · Affichages: 7

job75

XLDnaute Barbatruc
Une remarque pour LAETI-TOINOU sur le dimanche de Pâques.

Pour le nom défini _Pâques_An_Réf pourquoi utiliser une formule qui n'est pas valable sur toute version Excel ?

Il y en a bien d'autres, faites une recherche sur ce forum ou le web.

Noter que les périodes de validité peuvent être différentes.
 

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous, @job75, @LAETI-TOINOU
Quand je disais :
Là, on frôle la perfection ! 👍🤝
Je n'étais pas loin !

pourquoi utiliser une formule qui n'est pas valable sur toute version Excel ?
Ça c'est de ma faute, dans un précédent fil, comme exemple de la fonction LET mais on peut garder la même formule sans LET :
Enrichi (BBcode):
=SI(ET(_An_Réf>=1900;_An_Réf<=2204);
DATE(_An_Réf;3;29,56+0,979*MOD(204-11*MOD(_An_Réf;19);30)-JOURSEM(DATE(_An_Réf;3;28,56+0,979*MOD(204-11*MOD(_An_Réf;19);30))));
"Hors domaine ")
Cette formule, trouvée sur le Net, est valable, jusqu'en 2204, (vérifiée avec l'algorithme de Butcher), j'ai ajouté le test de validité, pour le plaisir. Mais si on est moins exigeant, il y a bien plus court.

Bon revenons à nos moutons (ou nos ponts).
Laëtitia, doit-on prendre tous les ponts potentiels (comme le fait Job75 dans son post #22 ou seulement ceux "officiels" que tu identifies dans les vacances comme dans les post #17 et #21.
Le plus aisé est le premier cas (Voir Pièce jointe ) car on n'a plus besoin de faire la recherche dans le tableau des vacances.
Amicalement
Alain

PS :
@job75, il y a un paquet d'années déjà, je m'étais amusé à mettre l'algorithme de BUTCHER en formule. Il est réputé donner les bonnes dates de pâques pour le calendrier grégorien, donc depuis 1583, (du moins tant que la lune n'aura pas trop bougé) .
Ça donnais ceci (An étant un nom qui se réfère à l'année ):
Sous forme de texte :

=TEXTE(MOD(MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)+MOD(32+2*MOD(ENT(An/100);4)+2*ENT(MOD(An;100)/4)-MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)-MOD(MOD(An;100);4);7)-7*ENT((MOD(An;19)+11*MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)+22*MOD(32+2*MOD(ENT(An/100);4)+2*ENT(MOD(An;100)/4)-MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)-MOD(MOD(An;100);4);7))/451)+114;31)+1;"00")&"/"&TEXTE(ENT((MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)+MOD(32+2*MOD(ENT(An/100);4)+2*ENT(MOD(An;100)/4)-MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)-MOD(MOD(An;100);4);7)-7*ENT((MOD(An;19)+11*MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)+22*MOD(32+2*MOD(ENT(An/100);4)+2*ENT(MOD(An;100)/4)-MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)-MOD(MOD(An;100);4);7))/451)+114)/31);"00")&"/"&An
Sous forme de date :
=SI(ET(An>=1900;An<=9999);DATE(An;ENT((MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)+MOD(32+2*MOD(ENT(An/100);4)+2*ENT(MOD(An;100)/4)-MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)-MOD(MOD(An;100);4);7)-7*ENT((MOD(An;19)+11*MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)+22*MOD(32+2*MOD(ENT(An/100);4)+2*ENT(MOD(An;100)/4)-MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)-MOD(MOD(An;100);4);7))/451)+114)/31);MOD(MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)+MOD(32+2*MOD(ENT(An/100);4)+2*ENT(MOD(An;100)/4)-MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)-MOD(MOD(An;100);4);7)-7*ENT((MOD(An;19)+11*MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)+22*MOD(32+2*MOD(ENT(An/100);4)+2*ENT(MOD(An;100)/4)-MOD(19*MOD(An;19)+ENT(An/100)-ENT(ENT(An/100)/4)-ENT((ENT(An/100)-ENT((ENT(An/100)+8)/25)+1)/3)+15;30)-MOD(MOD(An;100);4);7))/451)+114;31)+1);"Hors domaine Excel")
Avec la fonction LET ça se simplifierait un peu !
 

Pièces jointes

  • MFC sur cellules contenant des dates (avec tous les ponts).xlsx
    186.9 KB · Affichages: 1
Dernière édition:

LAETI-TOINOU

XLDnaute Occasionnel
Bonjour @AtTheOne , Bonjour @job75,

Désolée de vous répondre aussi tardivement, c'est un peu compliqué en ce moment pour moi.

Concernant les ponts, le mieux est de prendre les ponts "officiels", le pont indiqué dans les vacances figure ainsi, car je suis partie d'un tableau que l'on m'avait aidée à mettre en forme.

En tout car, je vous remercie beaucoup, beaucoup pour tout le travail que vous faites pour moi.


Laëtitia
 

Statistiques des forums

Discussions
315 095
Messages
2 116 167
Membres
112 675
dernier inscrit
Tazra_IMOU