Resolu - Problème sur une fonction jourféries

Zussy Stephane

XLDnaute Nouveau
Bjr,

Je souhaite faire une fonction pour vérifier si le jour est férié ou non pour un document de gestion.
Le problème est que le résultat donne toujours "FAUX" même si je rentre une date qui est un jour férié et je ne comprends pas!
(La fonction du jours de Pâques n'est pas encore présente car je ne sais pas encore comment faire mais je vais bien trouver sur ce forum...)

Pouvez-vous m'aider pour faire fonctionner cette fonction?
Merci d'avance


Code:
Option Explicit

Public Function Feries(InputDate As Variant) As Boolean
Dim ListFeries(1 To 20) As Long, i As Integer, tDate As Long, AN As Integer

Feries = False
tDate = CDate(InputDate)
    If tDate < 1 Then Exit Function
AN = Year(tDate)
    If AN < 1900 Then Exit Function

    ' création liste jours féries
    ListFeries(1) = CDate("1/1/" & AN) ' Jour de l'an
    ListFeries(2) = CDate("2/1/" & AN) ' Lendemain de l'an
    ListFeries(3) = CDate("1/5/" & AN) ' Fête du travail
    ListFeries(4) = CDate("8/5/" & AN) ' Victoire 1945
    ListFeries(6) = CDate("15/5/" & AN)  'Pâques
    ListFeries(5) = ListFeries(6) - 2  ' Vendredi Saint
    ListFeries(7) = ListFeries(6) + 1 'Lundi Pâques
    ListFeries(8) = ListFeries(6) + 39 'Ascension= Pâques+39
    ListFeries(9) = ListFeries(6) + 49  'Pentecôte= Pâques+49
    ListFeries(10) = ListFeries(6) + 50  'Lundi de Pentecôte= Pâques+50
    ListFeries(11) = ListFeries(6) + 60  'Fête Dieu = Pâques+60
    ListFeries(12) = CDate("23/6/" & AN) ' Plébicite Canton Jura
    ListFeries(13) = CDate("14/7/" & AN)  'Fête Nationale Française
    ListFeries(14) = CDate("15/8/" & AN) ' Assomption
    ListFeries(15) = CDate("1/11/" & AN) ' Toussaint
    ListFeries(16) = CDate("11/11" & AN)  'Armistice 39-45
    ListFeries(17) = CDate("25/12/" & AN) ' Noël
    ListFeries(18) = CDate("26/12/" & AN)  ' St-Etienne


    ' comparer la date InputDate avec la liste ListFeries
    i = 1
    While i <= UBound(ListFeries) And Feries = False
        If tDate = ListFeries(i) Then Feries = True
        i = i + 1
    Wend

End Function
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Problème sur une fonction jourféries

Bonjour
ta fonction va aller jusqu'au dernier i
le dernier test compare donc toujours tdate à la Saint etienne... Si ce n'est pas ce jour là forcément ça renvoie faux .

problème récurrent pour les jours fériés et Pâques :)
Ce lien n'existe plus
Ce lien n'existe plus
Ce lien n'existe plus
 

WUTED

XLDnaute Occasionnel
Re : Problème sur une fonction jourféries

Bonjour Zussy Stephane,

Je viens de tester ta fonction et elle a marché correctement, il manquait juste un "/" quand tu attribues sa valeur à ListFeries(16) qui a provoqué une incompatibilité chez moi (erreur 13). Essaie de donner plus de précisions sur ce que tu mets en paramètres si ça persiste à ne pas fonctionner.

EDIT : Bonjour Misange, j'ai un peu de mal à comprendre ce que tu dis, il met bien en condition bloquante, que si son booléen Feries devient True, donc qu'il trouve une date correspondante dans sa liste, alors il sort du While, non?
 
Dernière édition:

Zussy Stephane

XLDnaute Nouveau
Re : Problème sur une fonction jourféries

Re-Bonjour,

Merci WUTED j'ai ajouté le "/" oublié à ListFeries(16) mais chez moi ça ne fonctionne toujours pas.
Même si je mets dans InputDate la date 26/12/2012, le résultat est toujours "FAUX" !

Comment avez-vous obtenu le bon résultat?

Encore merci de votre aide :)
 

Misange

XLDnaute Barbatruc
Re : Problème sur une fonction jourféries

j'ai vraiment raconté n'importe nawak tout à l'heure (et j'avais pas testé !) :)
la fonction marche parfaitement chez moi
 

Pièces jointes

  • fériés.xlsm
    15.9 KB · Affichages: 46

Discussions similaires

Réponses
17
Affichages
833

Statistiques des forums

Discussions
312 207
Messages
2 086 248
Membres
103 164
dernier inscrit
axelheili2