concernant ton probleme ....
2 constatations
le séparateur de date utilisé est le "point"
la restitution est au format texte.
concernant ton probleme ....
2 constatations
le séparateur de date utilisé est le "point"
la restitution est au format texte.
concernant ton probleme ....
2 constatations
le séparateur de date utilisé est le "point"
la restitution est au format texte.
-----Message d'origine-----
Bonsoir,
en place de fonction peronnalisée, il est possible
d'utiliser une formule
à choisir parmi les 20 suivantes : (compilation de Hans
Herber
http://www.herber.de)
la variable ANN représente l'année
=FRANC((JOUR(MINUTE(ANN/38)/2+55)&"/4/"&ANN)/7;)*7-6
=FRANC(("4/"&ANN)/7+MOD(19*MOD(ANN;19)-7;30)*14%;)*7-6
=FRANC(DATE(ANN;4;MOD(18,37*MOD(ANN;19)-5;29))/7;)*7-6
=FRANC(DATE(ANN;5;-MOD(6-349*MOD(ANN/19;1);29))/7;0)*7-6
=7*TRONQUE(DATE(ANN;3;MOD(18,37*MOD(ANN;19)-6;29))/7)+29
)+7*TRONQUE(DATE(ANN;3;MOD(19*MOD(ANN;19)-6;30)*96%)/7)
=TRONQUE(DATE(ANN;4;MOD(19*MOD(ANN;19)-6;30)*96%-3)/7)
*7+1
=TRONQUE(PLANCHER("3/5/"&ANN;29,5311)/7-(MOD(ANN;95)))
*7-6
=PLAFOND(("17/4/"&ANN)-TRONQUE(MOD(11*MOD(ANN;19)+5;30)-
1,5);7)+1
=TRONQUE(DATE(ANN;7;-CODE(STXT("NYdQJT_LWbOZeR]KU`";MOD
(ANN;19)+1;1)))/7)*7
+8
=PLAFOND(DATE(ANN;4;20)-MOD(6+11*MOD(ANN;19);30)-(MOD
(6+11*MOD(ANN;19);30)<3
);7)+1
=ARRONDI.SUP((("21/3/"&ANN)+MOD(204-11*MOD
(ANN;19);30))/7-(ABS(ABS(ANN-2015)
-47,5),5);)*7+1
=7*TRONQUE((MOD(MOD(ANN;19)*19-6;30)+365,25*ANN-
693881)/7)-SI(OU(ANN50+{4
;31;99;126});7)-6
TE(ANN;3;28)+MOD(24-MOD(ANN;19)*10,63;29)-MOD(TRONQUE
(ANN*5/4)+MOD(24-MOD
(ANN;19)*10,63;29)+1;7)
TE(ANN;3;29,56+0,979*MOD(204-11*MOD(ANN;19);30)-
JOURSEM(DATE(ANN;3;28,56+
0,979*MOD(204-11*MOD(ANN;19);30))))
TE(ANN;3;28+MOD(204-11*MOD(ANN;19);30))-MOD(DATE
(ANN;3;6+MOD(204-11*MOD(A
NN;19);30));7)-SI(OU
(ANN54;ANN81;ANN 49;ANN 76);7)
=TRONQUE(365,25*ANN-693894)+SI(OU
(ANN54;ANN81;ANN 49;ANN 76);;7)+M
OD(24-11*MOD(ANN;19);30)-MOD(ANN+TRONQUE(ANN/4)+MOD(24-
11*MOD(ANN;19);30)+1;
7)
TE(ANN;4;MOD(24-11*MOD(ANN;19);30)-MOD(1+ENT(ANN*5/4)
+MOD(24-11*MOD(ANN;1
9);30)-(MOD(24-11*MOD(ANN;19);30)>27);7)-(MOD(24-11*MOD
(ANN;19);30)>27)-3)
TE(ANN;3;28)+MOD(24-11*MOD(ANN;19);30)-(MOD(24-11*MOD
(ANN;19);30)>27)-MOD
(ENT(5*ANN/4)+1+MOD(24-11*MOD(ANN;19);30)-(MOD(24-11*MOD
(ANN;19);30)>27);7)
TE(ANN;3;28)+MOD(24+19*MOD(ANN;19);30)-(MOD(24+19*MOD
(ANN;19);30)>27)-MOD
(ENT(ANN+ANN/4)+MOD(24+19*MOD(ANN;19);30)-(MOD(24+19*MOD
(ANN;19);30)>27)+1;7
)
concernant ton probleme ....
2 constatations
le séparateur de date utilisé est le "point"
la restitution est au format texte.
voici le code corrigé :
Public Function PAQUES(année As Variant) As Date
Dim lAnnee As Long
Dim retour As Long
Dim jour As String
lAnnee = CLng(année)
If lAnnee >= 1 Then
retour = calculerPaques(lAnnee)
If retour > 31 Then
jour = CStr(retour - 31) & "/04/" & CStr
(année)
Else
jour = CStr(retour) & "/03/" & CStr(année)
End If
Else
jour = ""
End If
PAQUES = CDate(jour)
End Function
Private Function calculerPaques(annee As Long) As Long
Dim m As Long
Dim n As Long
m = (19 * (annee Mod 19) + 24) Mod 30
n = (2 * (annee Mod 4) + 4 * (annee Mod 7) + 6 * m +
5) Mod 7
calculerPaques = m + n + 22
End Function
@+
.
-----Message d'origine-----
Bonsoir,
en place de fonction peronnalisée, il est possible
d'utiliser une formule
à choisir parmi les 20 suivantes : (compilation de Hans
Herber
http://www.herber.de)
la variable ANN représente l'année
=FRANC((JOUR(MINUTE(ANN/38)/2+55)&"/4/"&ANN)/7;)*7-6
=FRANC(("4/"&ANN)/7+MOD(19*MOD(ANN;19)-7;30)*14%;)*7-6
=FRANC(DATE(ANN;4;MOD(18,37*MOD(ANN;19)-5;29))/7;)*7-6
=FRANC(DATE(ANN;5;-MOD(6-349*MOD(ANN/19;1);29))/7;0)*7-6
=7*TRONQUE(DATE(ANN;3;MOD(18,37*MOD(ANN;19)-6;29))/7)+29
=29+7*TRONQUE(DATE(ANN;3;MOD(19*MOD(ANN;19)-6;30)*96%)/7)
=TRONQUE(DATE(ANN;4;MOD(19*MOD(ANN;19)-6;30)*96%-3)/7)
*7+1
=TRONQUE(PLANCHER("3/5/"&ANN;29,5311)/7-(MOD(ANN;95)=81))
*7-6
=PLAFOND(("17/4/"&ANN)-TRONQUE(MOD(11*MOD(ANN;19)+5;30)-
1,5);7)+1
=TRONQUE(DATE(ANN;7;-CODE(STXT("NYdQJT_LWbOZeR]KU`";MOD
(ANN;19)+1;1)))/7)*7
+8
=PLAFOND(DATE(ANN;4;20)-MOD(6+11*MOD(ANN;19);30)-(MOD
(6+11*MOD(ANN;19);30)<3
);7)+1
=ARRONDI.SUP((("21/3/"&ANN)+MOD(204-11*MOD
(ANN;19);30))/7-(ABS(ABS(ANN-2015)
-47,5)=13,5);)*7+1
=7*TRONQUE((MOD(MOD(ANN;19)*19-6;30)+365,25*ANN-
693881)/7)-SI(OU(ANN=1950+{4
;31;99;126});7)-6
=DATE(ANN;3;28)+MOD(24-MOD(ANN;19)*10,63;29)-MOD(TRONQUE
(ANN*5/4)+MOD(24-MOD
(ANN;19)*10,63;29)+1;7)
=DATE(ANN;3;29,56+0,979*MOD(204-11*MOD(ANN;19);30)-
JOURSEM(DATE(ANN;3;28,56+
0,979*MOD(204-11*MOD(ANN;19);30))))
=DATE(ANN;3;28+MOD(204-11*MOD(ANN;19);30))-MOD(DATE
(ANN;3;6+MOD(204-11*MOD(A
NN;19);30));7)-SI(OU
(ANN=1954;ANN=1981;ANN=2049;ANN=2076);7)
=TRONQUE(365,25*ANN-693894)+SI(OU
(ANN=1954;ANN=1981;ANN=2049;ANN=2076);;7)+M
OD(24-11*MOD(ANN;19);30)-MOD(ANN+TRONQUE(ANN/4)+MOD(24-
11*MOD(ANN;19);30)+1;
7)
=DATE(ANN;4;MOD(24-11*MOD(ANN;19);30)-MOD(1+ENT(ANN*5/4)
+MOD(24-11*MOD(ANN;1
9);30)-(MOD(24-11*MOD(ANN;19);30)>27);7)-(MOD(24-11*MOD
(ANN;19);30)>27)-3)
=DATE(ANN;3;28)+MOD(24-11*MOD(ANN;19);30)-(MOD(24-11*MOD
(ANN;19);30)>27)-MOD
(ENT(5*ANN/4)+1+MOD(24-11*MOD(ANN;19);30)-(MOD(24-11*MOD
(ANN;19);30)>27);7)
=DATE(ANN;3;28)+MOD(24+19*MOD(ANN;19);30)-(MOD(24+19*MOD
(ANN;19);30)>27)-MOD
(ENT(ANN+ANN/4)+MOD(24+19*MOD(ANN;19);30)-(MOD(24+19*MOD
(ANN;19);30)>27)+1;7
)
concernant ton probleme ....
2 constatations
le séparateur de date utilisé est le "point"
la restitution est au format texte.
voici le code corrigé :
Public Function PAQUES(année As Variant) As Date
Dim lAnnee As Long
Dim retour As Long
Dim jour As String
lAnnee = CLng(année)
If lAnnee >= 1 Then
retour = calculerPaques(lAnnee)
If retour > 31 Then
jour = CStr(retour - 31) & "/04/" & CStr
(année)
Else
jour = CStr(retour) & "/03/" & CStr(année)
End If
Else
jour = ""
End If
PAQUES = CDate(jour)
End Function
Private Function calculerPaques(annee As Long) As Long
Dim m As Long
Dim n As Long
m = (19 * (annee Mod 19) + 24) Mod 30
n = (2 * (annee Mod 4) + 4 * (annee Mod 7) + 6 * m +
5) Mod 7
calculerPaques = m + n + 22
End Function
@+
.
-----Message d'origine-----
Bonsoir,
en place de fonction peronnalisée, il est possible
d'utiliser une formule
à choisir parmi les 20 suivantes : (compilation de Hans
Herber
http://www.herber.de)
la variable ANN représente l'année
=FRANC((JOUR(MINUTE(ANN/38)/2+55)&"/4/"&ANN)/7;)*7-6
=FRANC(("4/"&ANN)/7+MOD(19*MOD(ANN;19)-7;30)*14%;)*7-6
=FRANC(DATE(ANN;4;MOD(18,37*MOD(ANN;19)-5;29))/7;)*7-6
=FRANC(DATE(ANN;5;-MOD(6-349*MOD(ANN/19;1);29))/7;0)*7-6
=7*TRONQUE(DATE(ANN;3;MOD(18,37*MOD(ANN;19)-6;29))/7)+29
)+7*TRONQUE(DATE(ANN;3;MOD(19*MOD(ANN;19)-6;30)*96%)/7)
=TRONQUE(DATE(ANN;4;MOD(19*MOD(ANN;19)-6;30)*96%-3)/7)
*7+1
=TRONQUE(PLANCHER("3/5/"&ANN;29,5311)/7-(MOD(ANN;95)))
*7-6
=PLAFOND(("17/4/"&ANN)-TRONQUE(MOD(11*MOD(ANN;19)+5;30)-
1,5);7)+1
=TRONQUE(DATE(ANN;7;-CODE(STXT("NYdQJT_LWbOZeR]KU`";MOD
(ANN;19)+1;1)))/7)*7
+8
=PLAFOND(DATE(ANN;4;20)-MOD(6+11*MOD(ANN;19);30)-(MOD
(6+11*MOD(ANN;19);30)<3
);7)+1
=ARRONDI.SUP((("21/3/"&ANN)+MOD(204-11*MOD
(ANN;19);30))/7-(ABS(ABS(ANN-2015)
-47,5),5);)*7+1
=7*TRONQUE((MOD(MOD(ANN;19)*19-6;30)+365,25*ANN-
693881)/7)-SI(OU(ANN50+{4
;31;99;126});7)-6
TE(ANN;3;28)+MOD(24-MOD(ANN;19)*10,63;29)-MOD(TRONQUE
(ANN*5/4)+MOD(24-MOD
(ANN;19)*10,63;29)+1;7)
TE(ANN;3;29,56+0,979*MOD(204-11*MOD(ANN;19);30)-
JOURSEM(DATE(ANN;3;28,56+
0,979*MOD(204-11*MOD(ANN;19);30))))
TE(ANN;3;28+MOD(204-11*MOD(ANN;19);30))-MOD(DATE
(ANN;3;6+MOD(204-11*MOD(A
NN;19);30));7)-SI(OU
(ANN54;ANN81;ANN 49;ANN 76);7)
=TRONQUE(365,25*ANN-693894)+SI(OU
(ANN54;ANN81;ANN 49;ANN 76);;7)+M
OD(24-11*MOD(ANN;19);30)-MOD(ANN+TRONQUE(ANN/4)+MOD(24-
11*MOD(ANN;19);30)+1;
7)
TE(ANN;4;MOD(24-11*MOD(ANN;19);30)-MOD(1+ENT(ANN*5/4)
+MOD(24-11*MOD(ANN;1
9);30)-(MOD(24-11*MOD(ANN;19);30)>27);7)-(MOD(24-11*MOD
(ANN;19);30)>27)-3)
TE(ANN;3;28)+MOD(24-11*MOD(ANN;19);30)-(MOD(24-11*MOD
(ANN;19);30)>27)-MOD
(ENT(5*ANN/4)+1+MOD(24-11*MOD(ANN;19);30)-(MOD(24-11*MOD
(ANN;19);30)>27);7)
TE(ANN;3;28)+MOD(24+19*MOD(ANN;19);30)-(MOD(24+19*MOD
(ANN;19);30)>27)-MOD
(ENT(ANN+ANN/4)+MOD(24+19*MOD(ANN;19);30)-(MOD(24+19*MOD
(ANN;19);30)>27)+1;7
)
concernant ton probleme ....
2 constatations
le séparateur de date utilisé est le "point"
la restitution est au format texte.
voici le code corrigé :
Public Function PAQUES(année As Variant) As Date
Dim lAnnee As Long
Dim retour As Long
Dim jour As String
lAnnee = CLng(année)
If lAnnee >= 1 Then
retour = calculerPaques(lAnnee)
If retour > 31 Then
jour = CStr(retour - 31) & "/04/" & CStr
(année)
Else
jour = CStr(retour) & "/03/" & CStr(année)
End If
Else
jour = ""
End If
PAQUES = CDate(jour)
End Function
Private Function calculerPaques(annee As Long) As Long
Dim m As Long
Dim n As Long
m = (19 * (annee Mod 19) + 24) Mod 30
n = (2 * (annee Mod 4) + 4 * (annee Mod 7) + 6 * m +
5) Mod 7
calculerPaques = m + n + 22
End Function
@+
.
-----Message d'origine-----
Bonjour Freedo,
Est-ce que ta macro complémentaire s'affiche dans la
fenêtre Barre des menus / outils / macro complémentaire ?
tu la coches et au besoin tu prends le bouton parcourir,
et tu lui montres l'endroit où tu as caché le fichier de
macro complémentaire.
Ce n'est pas parce que tu as placé dans le répertoire
des macros complémentaires qu'elle va se charger
Elle est au même rang que toutes les autres! ;-)
Salutations!
"Freedo" a
écrit dans le message de
news:001e01c3a172$b026c3a0$
Bonjour à Toutes et à Tous,
j'ai récupéré une macro pour le calcul du jour de Pâques
et ses dérivés.
Mais je n'arrive pas à l'utiliser dans mons classeur
avec la formule tel que : =pâques(C3)
Pourtant j'ai créé un classur Paques où j'ai mis dans un
module la macro et j'ai souvegardé en xla ensuite j'ai
placécette macro xla dans le répertoire Macrolib.
mais cela ne fonctionne pas encore.
Où me suis-je trompé ?
Merci de suivre,
Freedo
Public Function PAQUES(année As Variant) As String
Dim lAnnee As Long
Dim retour As Long
Dim jour As String
lAnnee = CLng(année)
If lAnnee >= 1 Then
retour = calculerPaques(lAnnee)
If retour > 31 Then
jour = CStr(retour - 31) & ".04." & CStr
(année)
Else
jour = CStr(retour) & ".03." & CStr(année)
End If
Else
jour = ""
End If
PAQUES = jour
End Function
Private Function calculerPaques(annee As Long) As Long
Dim m As Long
Dim n As Long
m = (19 * (annee Mod 19) + 24) Mod 30
n = (2 * (annee Mod 4) + 4 * (annee Mod 7) + 6 * m +
5) Mod 7
calculerPaques = m + n + 22
End Function
.
-----Message d'origine-----
Bonjour Freedo,
Est-ce que ta macro complémentaire s'affiche dans la
fenêtre Barre des menus / outils / macro complémentaire ?
tu la coches et au besoin tu prends le bouton parcourir,
et tu lui montres l'endroit où tu as caché le fichier de
macro complémentaire.
Ce n'est pas parce que tu as placé dans le répertoire
des macros complémentaires qu'elle va se charger
Elle est au même rang que toutes les autres! ;-)
Salutations!
"Freedo" <Freedo.anonymous@discussions.microsoft.com> a
écrit dans le message de
news:001e01c3a172$b026c3a0$a601280a@phx.gbl...
Bonjour à Toutes et à Tous,
j'ai récupéré une macro pour le calcul du jour de Pâques
et ses dérivés.
Mais je n'arrive pas à l'utiliser dans mons classeur
avec la formule tel que : =pâques(C3)
Pourtant j'ai créé un classur Paques où j'ai mis dans un
module la macro et j'ai souvegardé en xla ensuite j'ai
placécette macro xla dans le répertoire Macrolib.
mais cela ne fonctionne pas encore.
Où me suis-je trompé ?
Merci de suivre,
Freedo
Public Function PAQUES(année As Variant) As String
Dim lAnnee As Long
Dim retour As Long
Dim jour As String
lAnnee = CLng(année)
If lAnnee >= 1 Then
retour = calculerPaques(lAnnee)
If retour > 31 Then
jour = CStr(retour - 31) & ".04." & CStr
(année)
Else
jour = CStr(retour) & ".03." & CStr(année)
End If
Else
jour = ""
End If
PAQUES = jour
End Function
Private Function calculerPaques(annee As Long) As Long
Dim m As Long
Dim n As Long
m = (19 * (annee Mod 19) + 24) Mod 30
n = (2 * (annee Mod 4) + 4 * (annee Mod 7) + 6 * m +
5) Mod 7
calculerPaques = m + n + 22
End Function
.
-----Message d'origine-----
Bonjour Freedo,
Est-ce que ta macro complémentaire s'affiche dans la
fenêtre Barre des menus / outils / macro complémentaire ?
tu la coches et au besoin tu prends le bouton parcourir,
et tu lui montres l'endroit où tu as caché le fichier de
macro complémentaire.
Ce n'est pas parce que tu as placé dans le répertoire
des macros complémentaires qu'elle va se charger
Elle est au même rang que toutes les autres! ;-)
Salutations!
"Freedo" a
écrit dans le message de
news:001e01c3a172$b026c3a0$
Bonjour à Toutes et à Tous,
j'ai récupéré une macro pour le calcul du jour de Pâques
et ses dérivés.
Mais je n'arrive pas à l'utiliser dans mons classeur
avec la formule tel que : =pâques(C3)
Pourtant j'ai créé un classur Paques où j'ai mis dans un
module la macro et j'ai souvegardé en xla ensuite j'ai
placécette macro xla dans le répertoire Macrolib.
mais cela ne fonctionne pas encore.
Où me suis-je trompé ?
Merci de suivre,
Freedo
Public Function PAQUES(année As Variant) As String
Dim lAnnee As Long
Dim retour As Long
Dim jour As String
lAnnee = CLng(année)
If lAnnee >= 1 Then
retour = calculerPaques(lAnnee)
If retour > 31 Then
jour = CStr(retour - 31) & ".04." & CStr
(année)
Else
jour = CStr(retour) & ".03." & CStr(année)
End If
Else
jour = ""
End If
PAQUES = jour
End Function
Private Function calculerPaques(annee As Long) As Long
Dim m As Long
Dim n As Long
m = (19 * (annee Mod 19) + 24) Mod 30
n = (2 * (annee Mod 4) + 4 * (annee Mod 7) + 6 * m +
5) Mod 7
calculerPaques = m + n + 22
End Function
.
-----Message d'origine-----
La fonction donnée pourrait évidemment être imbriquée
dans une seule.
Mais c'était pour rester cohérent avec cette ficelle.
Salutations,
Daniel M.
.
-----Message d'origine-----
La fonction donnée pourrait évidemment être imbriquée
dans une seule.
Mais c'était pour rester cohérent avec cette ficelle.
Salutations,
Daniel M.
.
-----Message d'origine-----
La fonction donnée pourrait évidemment être imbriquée
dans une seule.
Mais c'était pour rester cohérent avec cette ficelle.
Salutations,
Daniel M.
.
Bonsoir,
en place de fonction peronnalisée, il est possible d'utiliser une formule
à choisir parmi les 20 suivantes : (compilation de Hans Herber
http://www.herber.de)
la variable ANN représente l'année
=FRANC((JOUR(MINUTE(ANN/38)/2+55)&"/4/"&ANN)/7;)*7-6
=FRANC(("4/"&ANN)/7+MOD(19*MOD(ANN;19)-7;30)*14%;)*7-6
=FRANC(DATE(ANN;4;MOD(18,37*MOD(ANN;19)-5;29))/7;)*7-6
=FRANC(DATE(ANN;5;-MOD(6-349*MOD(ANN/19;1);29))/7;0)*7-6
=7*TRONQUE(DATE(ANN;3;MOD(18,37*MOD(ANN;19)-6;29))/7)+29
)+7*TRONQUE(DATE(ANN;3;MOD(19*MOD(ANN;19)-6;30)*96%)/7)
=TRONQUE(DATE(ANN;4;MOD(19*MOD(ANN;19)-6;30)*96%-3)/7)*7+1
=TRONQUE(PLANCHER("3/5/"&ANN;29,5311)/7-(MOD(ANN;95)))*7-6
=PLAFOND(("17/4/"&ANN)-TRONQUE(MOD(11*MOD(ANN;19)+5;30)-1,5);7)+1
=TRONQUE(DATE(ANN;7;-CODE(STXT("NYdQJT_LWbOZeR]KU`";MOD(ANN;19)+1;1)))/7)*7
+8
=PLAFOND(DATE(ANN;4;20)-MOD(6+11*MOD(ANN;19);30)-(MOD(6+11*MOD(ANN;19);30)<3
);7)+1
=ARRONDI.SUP((("21/3/"&ANN)+MOD(204-11*MOD(ANN;19);30))/7-(ABS(ABS(ANN-2015)
-47,5),5);)*7+1
=7*TRONQUE((MOD(MOD(ANN;19)*19-6;30)+365,25*ANN-693881)/7)-SI(OU(ANN50+{4
;31;99;126});7)-6
ÚTE(ANN;3;28)+MOD(24-MOD(ANN;19)*10,63;29)-MOD(TRONQUE(ANN*5/4)+MOD(24-MOD
(ANN;19)*10,63;29)+1;7)
ÚTE(ANN;3;29,56+0,979*MOD(204-11*MOD(ANN;19);30)-JOURSEM(DATE(ANN;3;28,56+
0,979*MOD(204-11*MOD(ANN;19);30))))
ÚTE(ANN;3;28+MOD(204-11*MOD(ANN;19);30))-MOD(DATE(ANN;3;6+MOD(204-11*MOD(A
NN;19);30));7)-SI(OU(ANN54;ANN81;ANN 49;ANN 76);7)
=TRONQUE(365,25*ANN-693894)+SI(OU(ANN54;ANN81;ANN 49;ANN 76);;7)+M
OD(24-11*MOD(ANN;19);30)-MOD(ANN+TRONQUE(ANN/4)+MOD(24-11*MOD(ANN;19);30)+1;
7)
ÚTE(ANN;4;MOD(24-11*MOD(ANN;19);30)-MOD(1+ENT(ANN*5/4)+MOD(24-11*MOD(ANN;1
9);30)-(MOD(24-11*MOD(ANN;19);30)>27);7)-(MOD(24-11*MOD(ANN;19);30)>27)-3)
ÚTE(ANN;3;28)+MOD(24-11*MOD(ANN;19);30)-(MOD(24-11*MOD(ANN;19);30)>27)-MOD
(ENT(5*ANN/4)+1+MOD(24-11*MOD(ANN;19);30)-(MOD(24-11*MOD(ANN;19);30)>27);7)
ÚTE(ANN;3;28)+MOD(24+19*MOD(ANN;19);30)-(MOD(24+19*MOD(ANN;19);30)>27)-MOD
(ENT(ANN+ANN/4)+MOD(24+19*MOD(ANN;19);30)-(MOD(24+19*MOD(ANN;19);30)>27)+1;7
)
concernant ton probleme ....
2 constatations
le séparateur de date utilisé est le "point"
la restitution est au format texte.
voici le code corrigé :
Public Function PAQUES(année As Variant) As Date
Dim lAnnee As Long
Dim retour As Long
Dim jour As String
lAnnee = CLng(année)
If lAnnee >= 1 Then
retour = calculerPaques(lAnnee)
If retour > 31 Then
jour = CStr(retour - 31) & "/04/" & CStr(année)
Else
jour = CStr(retour) & "/03/" & CStr(année)
End If
Else
jour = ""
End If
PAQUES = CDate(jour)
End Function
Private Function calculerPaques(annee As Long) As Long
Dim m As Long
Dim n As Long
m = (19 * (annee Mod 19) + 24) Mod 30
n = (2 * (annee Mod 4) + 4 * (annee Mod 7) + 6 * m + 5) Mod 7
calculerPaques = m + n + 22
End Function
@+
Bonsoir,
en place de fonction peronnalisée, il est possible d'utiliser une formule
à choisir parmi les 20 suivantes : (compilation de Hans Herber
http://www.herber.de)
la variable ANN représente l'année
=FRANC((JOUR(MINUTE(ANN/38)/2+55)&"/4/"&ANN)/7;)*7-6
=FRANC(("4/"&ANN)/7+MOD(19*MOD(ANN;19)-7;30)*14%;)*7-6
=FRANC(DATE(ANN;4;MOD(18,37*MOD(ANN;19)-5;29))/7;)*7-6
=FRANC(DATE(ANN;5;-MOD(6-349*MOD(ANN/19;1);29))/7;0)*7-6
=7*TRONQUE(DATE(ANN;3;MOD(18,37*MOD(ANN;19)-6;29))/7)+29
)+7*TRONQUE(DATE(ANN;3;MOD(19*MOD(ANN;19)-6;30)*96%)/7)
=TRONQUE(DATE(ANN;4;MOD(19*MOD(ANN;19)-6;30)*96%-3)/7)*7+1
=TRONQUE(PLANCHER("3/5/"&ANN;29,5311)/7-(MOD(ANN;95)))*7-6
=PLAFOND(("17/4/"&ANN)-TRONQUE(MOD(11*MOD(ANN;19)+5;30)-1,5);7)+1
=TRONQUE(DATE(ANN;7;-CODE(STXT("NYdQJT_LWbOZeR]KU`";MOD(ANN;19)+1;1)))/7)*7
+8
=PLAFOND(DATE(ANN;4;20)-MOD(6+11*MOD(ANN;19);30)-(MOD(6+11*MOD(ANN;19);30)<3
);7)+1
=ARRONDI.SUP((("21/3/"&ANN)+MOD(204-11*MOD(ANN;19);30))/7-(ABS(ABS(ANN-2015)
-47,5),5);)*7+1
=7*TRONQUE((MOD(MOD(ANN;19)*19-6;30)+365,25*ANN-693881)/7)-SI(OU(ANN50+{4
;31;99;126});7)-6
ÚTE(ANN;3;28)+MOD(24-MOD(ANN;19)*10,63;29)-MOD(TRONQUE(ANN*5/4)+MOD(24-MOD
(ANN;19)*10,63;29)+1;7)
ÚTE(ANN;3;29,56+0,979*MOD(204-11*MOD(ANN;19);30)-JOURSEM(DATE(ANN;3;28,56+
0,979*MOD(204-11*MOD(ANN;19);30))))
ÚTE(ANN;3;28+MOD(204-11*MOD(ANN;19);30))-MOD(DATE(ANN;3;6+MOD(204-11*MOD(A
NN;19);30));7)-SI(OU(ANN54;ANN81;ANN 49;ANN 76);7)
=TRONQUE(365,25*ANN-693894)+SI(OU(ANN54;ANN81;ANN 49;ANN 76);;7)+M
OD(24-11*MOD(ANN;19);30)-MOD(ANN+TRONQUE(ANN/4)+MOD(24-11*MOD(ANN;19);30)+1;
7)
ÚTE(ANN;4;MOD(24-11*MOD(ANN;19);30)-MOD(1+ENT(ANN*5/4)+MOD(24-11*MOD(ANN;1
9);30)-(MOD(24-11*MOD(ANN;19);30)>27);7)-(MOD(24-11*MOD(ANN;19);30)>27)-3)
ÚTE(ANN;3;28)+MOD(24-11*MOD(ANN;19);30)-(MOD(24-11*MOD(ANN;19);30)>27)-MOD
(ENT(5*ANN/4)+1+MOD(24-11*MOD(ANN;19);30)-(MOD(24-11*MOD(ANN;19);30)>27);7)
ÚTE(ANN;3;28)+MOD(24+19*MOD(ANN;19);30)-(MOD(24+19*MOD(ANN;19);30)>27)-MOD
(ENT(ANN+ANN/4)+MOD(24+19*MOD(ANN;19);30)-(MOD(24+19*MOD(ANN;19);30)>27)+1;7
)
concernant ton probleme ....
2 constatations
le séparateur de date utilisé est le "point"
la restitution est au format texte.
voici le code corrigé :
Public Function PAQUES(année As Variant) As Date
Dim lAnnee As Long
Dim retour As Long
Dim jour As String
lAnnee = CLng(année)
If lAnnee >= 1 Then
retour = calculerPaques(lAnnee)
If retour > 31 Then
jour = CStr(retour - 31) & "/04/" & CStr(année)
Else
jour = CStr(retour) & "/03/" & CStr(année)
End If
Else
jour = ""
End If
PAQUES = CDate(jour)
End Function
Private Function calculerPaques(annee As Long) As Long
Dim m As Long
Dim n As Long
m = (19 * (annee Mod 19) + 24) Mod 30
n = (2 * (annee Mod 4) + 4 * (annee Mod 7) + 6 * m + 5) Mod 7
calculerPaques = m + n + 22
End Function
@+
Bonsoir,
en place de fonction peronnalisée, il est possible d'utiliser une formule
à choisir parmi les 20 suivantes : (compilation de Hans Herber
http://www.herber.de)
la variable ANN représente l'année
=FRANC((JOUR(MINUTE(ANN/38)/2+55)&"/4/"&ANN)/7;)*7-6
=FRANC(("4/"&ANN)/7+MOD(19*MOD(ANN;19)-7;30)*14%;)*7-6
=FRANC(DATE(ANN;4;MOD(18,37*MOD(ANN;19)-5;29))/7;)*7-6
=FRANC(DATE(ANN;5;-MOD(6-349*MOD(ANN/19;1);29))/7;0)*7-6
=7*TRONQUE(DATE(ANN;3;MOD(18,37*MOD(ANN;19)-6;29))/7)+29
)+7*TRONQUE(DATE(ANN;3;MOD(19*MOD(ANN;19)-6;30)*96%)/7)
=TRONQUE(DATE(ANN;4;MOD(19*MOD(ANN;19)-6;30)*96%-3)/7)*7+1
=TRONQUE(PLANCHER("3/5/"&ANN;29,5311)/7-(MOD(ANN;95)))*7-6
=PLAFOND(("17/4/"&ANN)-TRONQUE(MOD(11*MOD(ANN;19)+5;30)-1,5);7)+1
=TRONQUE(DATE(ANN;7;-CODE(STXT("NYdQJT_LWbOZeR]KU`";MOD(ANN;19)+1;1)))/7)*7
+8
=PLAFOND(DATE(ANN;4;20)-MOD(6+11*MOD(ANN;19);30)-(MOD(6+11*MOD(ANN;19);30)<3
);7)+1
=ARRONDI.SUP((("21/3/"&ANN)+MOD(204-11*MOD(ANN;19);30))/7-(ABS(ABS(ANN-2015)
-47,5),5);)*7+1
=7*TRONQUE((MOD(MOD(ANN;19)*19-6;30)+365,25*ANN-693881)/7)-SI(OU(ANN50+{4
;31;99;126});7)-6
ÚTE(ANN;3;28)+MOD(24-MOD(ANN;19)*10,63;29)-MOD(TRONQUE(ANN*5/4)+MOD(24-MOD
(ANN;19)*10,63;29)+1;7)
ÚTE(ANN;3;29,56+0,979*MOD(204-11*MOD(ANN;19);30)-JOURSEM(DATE(ANN;3;28,56+
0,979*MOD(204-11*MOD(ANN;19);30))))
ÚTE(ANN;3;28+MOD(204-11*MOD(ANN;19);30))-MOD(DATE(ANN;3;6+MOD(204-11*MOD(A
NN;19);30));7)-SI(OU(ANN54;ANN81;ANN 49;ANN 76);7)
=TRONQUE(365,25*ANN-693894)+SI(OU(ANN54;ANN81;ANN 49;ANN 76);;7)+M
OD(24-11*MOD(ANN;19);30)-MOD(ANN+TRONQUE(ANN/4)+MOD(24-11*MOD(ANN;19);30)+1;
7)
ÚTE(ANN;4;MOD(24-11*MOD(ANN;19);30)-MOD(1+ENT(ANN*5/4)+MOD(24-11*MOD(ANN;1
9);30)-(MOD(24-11*MOD(ANN;19);30)>27);7)-(MOD(24-11*MOD(ANN;19);30)>27)-3)
ÚTE(ANN;3;28)+MOD(24-11*MOD(ANN;19);30)-(MOD(24-11*MOD(ANN;19);30)>27)-MOD
(ENT(5*ANN/4)+1+MOD(24-11*MOD(ANN;19);30)-(MOD(24-11*MOD(ANN;19);30)>27);7)
ÚTE(ANN;3;28)+MOD(24+19*MOD(ANN;19);30)-(MOD(24+19*MOD(ANN;19);30)>27)-MOD
(ENT(ANN+ANN/4)+MOD(24+19*MOD(ANN;19);30)-(MOD(24+19*MOD(ANN;19);30)>27)+1;7
)
concernant ton probleme ....
2 constatations
le séparateur de date utilisé est le "point"
la restitution est au format texte.
voici le code corrigé :
Public Function PAQUES(année As Variant) As Date
Dim lAnnee As Long
Dim retour As Long
Dim jour As String
lAnnee = CLng(année)
If lAnnee >= 1 Then
retour = calculerPaques(lAnnee)
If retour > 31 Then
jour = CStr(retour - 31) & "/04/" & CStr(année)
Else
jour = CStr(retour) & "/03/" & CStr(année)
End If
Else
jour = ""
End If
PAQUES = CDate(jour)
End Function
Private Function calculerPaques(annee As Long) As Long
Dim m As Long
Dim n As Long
m = (19 * (annee Mod 19) + 24) Mod 30
n = (2 * (annee Mod 4) + 4 * (annee Mod 7) + 6 * m + 5) Mod 7
calculerPaques = m + n + 22
End Function
@+