Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 fériés 2000 à 2100

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eastwick

XLDnaute Accro
Bonjour à toutes et tous,
Existe-t-il sur le forum un fichier répertoriant tous les jours fériés allant du 01/01/2000 au 31/12/2100 ?
Attention je ne demande pas la méthode pour calculer ceux dont la date n'est pas fixe (fériés religieux)
Je vous remercie.
 
et oui j'ai tenté le oneline mais les mod sont opérés avant j'ai tout remis en sequentiel
VB:
'fonction férié

'méthode Meeus/Jones/Butcher(dites la plus fiable)
Function PaquesMJSPB(Y As Long) As Date
    Dim a&, b&, c&, d&, e&, f&, g&, h&, i&, k&, L&, m&, Mx, Dx
    a = Y Mod 19: b = Y \ 100: c = Y Mod 100: d = b \ 4: e = b Mod 4: f = (b + 8) \ 25: g = (b - f + 1) \ 3
    h = (19 * a + b - d - g + 15) Mod 30: i = c \ 4: k = c Mod 4: L = (32 + 2 * e + 2 * i - h - k) Mod 7
    m = (a + 11 * h + 22 * L) \ 451: Mx = (h + L - 7 * m + 114) \ 31: Dx = ((h + L - 7 * m + 114) Mod 31) + 1
    PaquesMJSPB = DateSerial(Y, Mx, Dx)
End Function
'fonction férié
Function férié(d As Date, Optional ReturnMode As Long = 1) As Variant
    Dim X As Boolean
    Static a&: Static paques As Date
    If a <> Year(d) Then
        a = Year(d)
           paques = PaquesMJSPB(a)
   End If
    
    Select Case d
        Case DateSerial(Year(d), 1, 1): férié = "Jour de l'an": X = True
        Case paques: férié = "Pâques": X = True
        Case paques + 1: férié = "lundi de Paques": X = True
        Case paques + 39: férié = "Ascension": X = True 'L'Ascension est une fête chrétienne fixée 40 jours après le dimanche de Pâques. Elle symbolise la montée de Jésus vers Dieu
        Case paques + 50 = férié = "Lundi de Pentecôte": X = True 'Les apôtres ont alors dit : « L'Esprit du Seigneur est sur nous ». Elle clôt le temps pascal de 50 jours. La Pentecôte célèbre à la fois le commencement de l'Église, sa fondation, et l'émergence des premières communautés chrétiennes, au Ier siècle.
        Case DateSerial(Application.Max(Year(d), 1919), 5, 1): férié = "Fête du travail": X = True 'Le 23 avril 1919, le Sénat français ratifie la journée de huit heures et fait du 1er mai suivant, à titre exceptionnel, une journée chômée. Depuis, le 1er mai est resté le jour international des revendications ouvrières, donnant lieu à des défilés de travailleurs
        Case DateSerial(Application.Max(Year(d), 1945), 5, 8): férié = "fete de la victioire ": X = True 'Victoire des forces alliées sur l'Allemagne nazie et fin de la Seconde Guerre mondiale en Europe, le 8 mai 1945 marque une date importante. Pour le 80e anniversaire de la capitulation nazie
        Case DateSerial(Year(d), 7, 14): férié = "Fête Nationale ": X = True 'Le 14 juillet, pour sa double valeur symbolique, a finalement été privilégié. La prise de la Bastille en 1789 s'impose dans l'imaginaire collectif comme la victoire du peuple sur l'arbitraire royal, un événement adouci par la fête de 1790 et sa dimension fédératrice autour d'un événement commun
        Case DateSerial(Application.Max(Year(d), 1919), 11, 11): férié = "Armistice": X = True '11 novembre - Cérémonie commémorative de l'Armistice du 11 novembre 1918, de la Victoire et de la Paix et d'hommage à tous les Morts pour la France
        Case DateSerial(Year(d), 12, 25): férié = "Noël": X = True 'au 4eme siecle les chrétiens on fixer la date de naissence de jesus christ au 25 décembre ,l'empereur Theodose l'a officialisé pour remplacer les fêtes païennes
            'ajouter des jours si besoins ici pour les dates
    End Select
    
    If ReturnMode = 0 Then férié = X
End Function



Sub liste_Onlyférié()
    'ici on a que les jours férié de lister dans la feuille
    Dim d As Date, lig As Long
    ActiveSheet.UsedRange.ClearContents
    Application.ScreenUpdating = False
    d = CDate("01/01/2000")
    Do While d < CDate("31/12/2100")
        d = d + 1
        If férié(d) <> "" Then
            lig = lig + 1
            Cells(lig, 1) = d
            Cells(lig, 2) = férié(d)
        End If
    Loop
    Application.ScreenUpdating = True
End Sub

Sub test()
    MsgBox férié(CDate("11/11/2025"), 0)
    MsgBox férié(CDate("12/11/2025"), 0)
End Sub
 
cette fois ci, elle est bonne, testée de 1900 à 3000 pour le dimanche de Pâques
 
Mdr,
Je parle comme je pense, et j'écris, comme je parle....
Tu t'es vu, quand t'écris??????
à part toi, qui comprend?????
PS, si tu pouvais donner la méthode utilisée (et magnifiée par tes soins), ce serait aussi un plus....
Rho,
Faut que j'apprenne le "sudiste"....
cette fois ci, elle est bonne, testée de 1900 à 3000
Désolé....
 
cette fois ci, elle est bonne, testée de 1900 à 3000 pour le dimanche de Pâques
Merci @Bernard_XLD 👍

@Cousinhub
j'ai seulement dit que les MOD dans les opérations étaient effectués a contre sens en fait
en gros j'ai oublié de répéter des opération vu que je ne variabilisais pas
bon c'est pas grave chatgpt ma sauvé sur ce coup là
il s'y est repris à 3 fois avant de voir le problème quand même
bon il a quelques nom d'oiseau en plus dans son dictionnaire maintenant c'est bien 🤪🤣🤣🤣
 
et oui avec une opération de 3 kilomètres tu vois plus rien
et c’était rien en fait
juste des répétions d’opération oubliées vu que je faisait pas de séquence variabilisée
la les opération sont les mêmes mais en séquence et variabilisées
c'est plus court
faut bien que je me lance des défis c'est rigolo
en gros je me suis emmêler les pinceaux dans les tranches à répéter

bon en tout cas la liste ressort bien maintenant
 
non c'est celui de meuss l'algo 🤣
ici: https://fr.wikipedia.org/wiki/Calcul_de_la_date_de_Pâques_selon_la_méthode_de_Meeus
regarde les tableaux


alors après en écriture vba ou autre ,ça peut se traduire de plusieurs manières
j'ai essayé un onshot je me suis tartuflé la tronche en beauté...... bon tant pis
même pas mal de toute façon 🤣🤣🤣

après visiblement ma fonction gauss simplifié à son minimum (que l'on retrouve dans mon calendar )semble être bonne pour jusqu’à la fin de ce siècle
alors ............

ça aura fait marcher ma caboche pendant quelques heures c'est toujours ça de gagné

en tout cas notre ami voulais la liste des fériés
ben il les a maintenant: de différentes manières
perso du coup j'ai revu ma fonction ferié qui me sert dans plusieurs fichier
un peu de frais dans le code ça fait du bien
elle a deux returnMode
soit true/false
soit le nom ou raison du jour férié
on constate aussi que pour le genre de travail demandé
étant donné que je boucle sur 100 ans donc 100 *365 jours
la date de paque ainsi que A pour l'année est en static
autrement pour la liste de 2000 à 2100
pâques va être calculé 100 fois sur 3650 jours
ca mange moins de pain (comme on dit chez nous)
VB:
'fonction férié
'patricktoulon
'méthode Meeus/Jones/Butcher(dites la plus fiable)
Function PaquesMJSPB(Y) As Date
    Dim a&, b&, c&, d&, e&, f&, g&, h&, i&, k&, L&, m&, Mx, Dx
    a = Y Mod 19: b = Y \ 100: c = Y Mod 100: d = b \ 4: e = b Mod 4: f = (b + 8) \ 25: g = (b - f + 1) \ 3
    h = (19 * a + b - d - g + 15) Mod 30: i = c \ 4: k = c Mod 4: L = (32 + 2 * e + 2 * i - h - k) Mod 7
    m = (a + 11 * h + 22 * L) \ 451: Mx = (h + L - 7 * m + 114) \ 31: Dx = ((h + L - 7 * m + 114) Mod 31) + 1
    PaquesMJSPB = DateSerial(Y, Mx, Dx)
End Function
'fonction férié
Function férié(d As Date, Optional ReturnMode As Long = 1) As Variant
    Dim X As Boolean
    Static a&: Static paques As Date
    If a <> Year(d) Then
        a = Year(d)
           paques = PaquesMJSPB(a)
   End If
    
    Select Case d
        Case DateSerial(Year(d), 1, 1): férié = "Jour de l'an": X = True
        Case paques: férié = "Pâques": X = True
        Case paques + 1: férié = "lundi de Paques": X = True
        Case paques + 39: férié = "Ascension": X = True 'L'Ascension est une fête chrétienne fixée 40 jours après le dimanche de Pâques. Elle symbolise la montée de Jésus vers Dieu
        Case paques + 50 = férié = "Lundi de Pentecôte": X = True 'Les apôtres ont alors dit : « L'Esprit du Seigneur est sur nous ». Elle clôt le temps pascal de 50 jours. La Pentecôte célèbre à la fois le commencement de l'Église, sa fondation, et l'émergence des premières communautés chrétiennes, au Ier siècle.
        Case DateSerial(Application.Max(Year(d), 1919), 5, 1): férié = "Fête du travail": X = True 'Le 23 avril 1919, le Sénat français ratifie la journée de huit heures et fait du 1er mai suivant, à titre exceptionnel, une journée chômée. Depuis, le 1er mai est resté le jour international des revendications ouvrières, donnant lieu à des défilés de travailleurs
        Case DateSerial(Application.Max(Year(d), 1945), 5, 8): férié = "fete de la victioire ": X = True 'Victoire des forces alliées sur l'Allemagne nazie et fin de la Seconde Guerre mondiale en Europe, le 8 mai 1945 marque une date importante. Pour le 80e anniversaire de la capitulation nazie
        Case DateSerial(Year(d), 7, 14): férié = "Fête Nationale ": X = True 'Le 14 juillet, pour sa double valeur symbolique, a finalement été privilégié. La prise de la Bastille en 1789 s'impose dans l'imaginaire collectif comme la victoire du peuple sur l'arbitraire royal, un événement adouci par la fête de 1790 et sa dimension fédératrice autour d'un événement commun
        Case DateSerial(Application.Max(Year(d), 1919), 11, 11): férié = "Armistice": X = True '11 novembre - Cérémonie commémorative de l'Armistice du 11 novembre 1918, de la Victoire et de la Paix et d'hommage à tous les Morts pour la France
        Case DateSerial(Year(d), 12, 25): férié = "Noël": X = True 'au 4eme siecle les chrétiens on fixer la date de naissence de jesus christ au 25 décembre ,l'empereur Theodose l'a officialisé pour remplacer les fêtes païennes
            'ajouter des jours si besoins ici pour les dates
    End Select
    
    If ReturnMode = 0 Then férié = X
End Function
Sub test()
    MsgBox férié(CDate("11/11/2025"), 0)
    MsgBox férié(CDate("11/11/2025"))
End Sub
et voila une fonction passe partout de chez patosh
 
après visiblement ma fonction gauss simplifié à son minimum (que l'on retrouve dans mon calendar )semble être bonne pour jusqu’à la fin de ce siècle
Décidément, tu ne lis pas tout
l'algorithme de Gauss est, lui, faux sur 2049 et 2076
ta méthode Gauss simplifiée donne entre 2000 et 2100, comme tout algorithme Gauss, deux erreurs : en 2049 le 25 avril au lieu du 18 avril et en 2076 le 26 avril au lieu du 19 avril (Gauss donne aussi des erreurs avant en 1954 et en 1981)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…