xavril
XLDnaute Nouveau
Bonjour,
Je cherche depuis plusieurs jours pourquoi mon code ne marche pas.
Si on teste par exemple IsWork(#01/01/2014#),
L' application.match me retourne toujours erreur 2042, je crois que j'ai tout essayé en convertissant les dates en long et autres. en vérité l'erreur doit-être grosse comme un maison mais je ne la vois pas. mon tableau JFeries contient bien des dates et D est bien une date
Si quelqu'un peut m'aider ce serai sympa.
Merci.
Je cherche depuis plusieurs jours pourquoi mon code ne marche pas.
Code:
Public jFeries(11) As Date
Public Sub CreateJF(D)
'Calcul des jours feries d'après Ole P Erlandsen
Année = Year(D)
If Année < 1900 Then Exit Sub
'remplit le tableau des jours fériés
jFeries(1) = CDate("1/1/" & Année) 'Jour de l'An
jFeries(2) = CDate(Evaluate("Round(Date(" & Année & ",4,mod(234-11*mod(" & Année & ",19),30))/7,)*7-6") + 1) 'Lundi Pâques
jFeries(3) = jFeries(2) + 38 'Jeudi Ascencion
jFeries(4) = jFeries(2) + 49 'Lundi Pentecôte
jFeries(5) = CDate("1/5/" & Année) '1er Mai
jFeries(6) = CDate("8/5/" & Année) '8 Mai
jFeries(7) = CDate("14/7/" & Année) '14 Juillet
jFeries(8) = CDate("15/8/" & Année) '15 Août
jFeries(9) = CDate("1/11/" & Année) 'Toussaint
jFeries(10) = CDate("11/11/" & Année) '14-18
jFeries(11) = CDate("25/12/" & Année) 'Noël
Debug.Print "Fériés : " & jFeries(1), jFeries(2), jFeries(3), jFeries(4)
End Sub
Public Function IsWork(D As Date) As Boolean
CreateJF (D)
IsWork = False
Debug.Print D, VarType(D), VarType(jFeries(1)), Application.Match(D, jFeries, 0)
f = IsError(Application.Match(D, jFeries, 0))
w = Weekday(D, vbMonday) < 6
IsWork = f And w
End Function
L' application.match me retourne toujours erreur 2042, je crois que j'ai tout essayé en convertissant les dates en long et autres. en vérité l'erreur doit-être grosse comme un maison mais je ne la vois pas. mon tableau JFeries contient bien des dates et D est bien une date
Si quelqu'un peut m'aider ce serai sympa.
Merci.
Dernière édition: