Bonjour à tous,
Je rencontre actuellement un soucis pour comparer 2 dates. L'une est une date lue d'un planning, l'autre est une "manipulation savante" qui suit la démarche suivante :
- Une fonction VBA me trouve les jour fériés dynamiquement en fonction de l'année.
- Je change le format des cellule en type date via excel pour qu'il m'affiche le résultat de type jj/mm/aaaa
La fonction des jours fériés est la suivante :
Me demandez pas ce que la fonction ci-dessus fait, elle marche très bien pour trouvé les jours indexés sur Paques.
Cette derniere me renvoi une variable de type Long (donc convertie dans la cell excel en date jj/mm/aaaa).
Le souci est que je la compare avec une variable de type string appelée Day avec la fonction suivante :
J'ai testé les valeurs lues par la macro, elles sont bien au même format (c.a.d jj/mm/aaaa)
Mais la fonction me retourne toujours FAUX après comparaison.
Quelqu'un peut-il m'aider à comprendre ceci ?
Merci d'avance
Je rencontre actuellement un soucis pour comparer 2 dates. L'une est une date lue d'un planning, l'autre est une "manipulation savante" qui suit la démarche suivante :
- Une fonction VBA me trouve les jour fériés dynamiquement en fonction de l'année.
- Je change le format des cellule en type date via excel pour qu'il m'affiche le résultat de type jj/mm/aaaa
La fonction des jours fériés est la suivante :
Code:
Function Paques(Yr As Integer) As Long
Dim Century As Integer
Dim Sunday As Integer
Dim Epact As Integer
Dim Golden As Integer
Dim LeapDayCorrection As Integer
Dim SynchWithMoon As Integer
Dim N As Integer
Golden = (Yr Mod 19) + 1
Century = Yr \ 100 + 1
LeapDayCorrection = 3 * Century \ 4 - 12
SynchWithMoon = (8 * Century + 5) \ 25 - 5
Sunday = 5 * Yr \ 4 - LeapDayCorrection - 10
Epact = (11 * Golden + 20 + SynchWithMoon - LeapDayCorrection) Mod 30
If Epact < 0 Then Epact = Epact + 30
If (Epact = 25 And Golden > 11) Or Epact = 24 Then Epact = Epact + 1
N = 44 - Epact
If N < 21 Then N = N + 30
N = N + 7 - ((Sunday + N) Mod 7)
Paques = DateSerial(Yr, 3, N)
End Function
Me demandez pas ce que la fonction ci-dessus fait, elle marche très bien pour trouvé les jours indexés sur Paques.
Cette derniere me renvoi une variable de type Long (donc convertie dans la cell excel en date jj/mm/aaaa).
Le souci est que je la compare avec une variable de type string appelée Day avec la fonction suivante :
Code:
Private Function isFerie(Day As String) As Boolean
Dim JF As Object
Worksheets("Configuration").Activate
Range("G14:G24").Select
For Each JF In Selection
'MsgBox JF.Value
If JF.Value = Day Then
isFerie = True
Else
isFerie = False
End If
Next
'MsgBox JF.Value & "; " & Day & "; " & isFerie
Worksheets("Extraction_Planning").Activate
End Function
J'ai testé les valeurs lues par la macro, elles sont bien au même format (c.a.d jj/mm/aaaa)
Mais la fonction me retourne toujours FAUX après comparaison.
Quelqu'un peut-il m'aider à comprendre ceci ?
Merci d'avance
Dernière édition: