Resolu - Problème sur une fonction jourféries

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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
 
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:
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 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour