Formule lundi de Pâques

Bonjour,

je bute sur un problème qui m'échappe après de multiples essais.

J'ai 2 fichiers identiques (l'un en xlsx et l'autre en xlsm). Simplement j'ai la formule du lundi de Pâques en M3 que je dois écrire différemment : pour moi la bonne formule se finie par +1 dans le fichier en xlsx mais dans le fichier en xlsm je dois mettre +2 à la fin sinon ça me renvoi le dimanche de Pâques et non le lundi de Pâques !

J'ai regardé dans les formules, les macros mais quelque chose m'échappe.

Même en utilisant d'autre formules pour le lundi de Pâques je retombe sur le même problème...

Merci d'avance pour votre aide.

Bonjour,

Dans ton fichier en "xlsm" tu as coché dans les options avancées "Calendrier depuis 1904

décoche et teste

Bonjour,

Si vous voulez utiliser le calendrier 1904, voici ma fonction pour Pâques valable pour les 2 calendriers : 1900 et 1904.

A noter que ce calendrier permet d'afficher les heures négatives et est celui des utlisateurs d'Excel sous MAC.

Function Paques(année As Integer) As Date

    Dim s_an As Integer, q_an As Integer, c_an As Integer  'nb siècles année,  nb quadriannées de l'année, complément de l'année
    Dim nb_or               ' nombre d'or : rang de l'année dans le cycle lunaire de Méton
    Dim m                   ' métemptose : correction calenrier lunaire pour les années bissextiles
    Dim p                   ' proemptose : année de correction du cycle lunaire de Méton
    Dim Rp0 As Integer      ' reliquat pascal brut = nombre de jours entre le 21 mars (équinoxe) et le 14ème jour de lune
    Dim Rp As Integer       ' reliquat pascal après application éventuelle de la proemptose
    Dim Ep As Integer       ' écart pascal = nombre de jours entre le 14ème jour de lune et samedi le plus proche
    Dim Dp As Integer       ' quantième pascal = nombre de jours entre le 21 mars et le samedi saint

    ' Décomposition année en siècle + nombre de quadriannées + complément
    s_an = année \ 100:  q_an = (année - s_an * 100) \ 4: c_an = année - s_an * 100 - q_an * 4
    ' Nombre d'or
    nb_or = année Mod 19
    'Métemptose et Proemptose
    m = s_an - (s_an \ 4): p = (8 * s_an + 13) \ 25
    'Reliquat pascal brut et corrigé
    Rp0 = (15 + 19 * nb_or + m - p) Mod 30: Rp = Rp0 - ((nb_or + 11 * Rp0) \ 319)
    'Ecart pascal
    Ep = (4 - s_an \ 4 + 2 * s_an + 2 * q_an - c_an - Rp) Mod 7
    'Quantième pascal
    Dp = Rp + Ep
    'Date de Pâques
    If Not ThisWorkbook.Date1904 Then Paques = DateAdd("d", Dp + 1, DateSerial(année, 3, 21)) _
    Else Paques = DateAdd("d", Dp, DateSerial(année - 4, 3, 21))

End Function

Merci à tous les 2. J'étais passé à côté de cette coche du calendrier 1904 !

Pour la macro c'est nickel également.

Bonne journée et merci encore.

Re-bonjour Thev,

J'ai été un petit peu vite dans mon essai car la fonction me renvoi le dimanche de Pâques et pas le lundi et je n'ai pas réussi à voir ou modifier le code pour y arriver.

Mon autre problème est de taille à cause du calendrier 1940 :

Mon fichier de travail comporte bien évidemment plusieurs feuilles avec des TCD etc. Je suis en calendrier 1904 car sinon les heures négatives sont des #####.

Je veux donc rester en calendrier 1904 car sinon je dois intégrer des champs calculés et autres colonnes dans tous mes tableaux pour retomber sur mes pieds.

Le soucis c'est qu'en calendrier 1904 mes jours ouvrés sont faux et j'en ai besoin pour tous mes calculs.

Y'a t'il moyen d'avoir le bon nombre de jours ouvrés en calendrier 1904 par rapport à mon exemple en pièce jointe ? J'ai essayé avec de simple formules en ajoutant 4 années en jours etc. mais ça ne colle pas...

Merci d'avance si une solution existe.

Re,

Avec la fonction pour le Dim de Pâques, remplace la dernière ligne par celle-ci

 If Not ThisWorkbook.Date1904 Then Paques = DateAdd("d", Dp + 1, DateSerial(année, 3, 22)) _
    Else Paques = DateAdd("d", Dp, DateSerial(année - 4, 3, 22))

Nickel ! Merci.

Et pour mon 2ème soucis peut-être une astuce ?

Rechercher des sujets similaires à "formule lundi paques"