Weekend et jour férié

hydatidose -  
 Hydatid -
Bonjour,
J'ai un petit problème : Gestion des rendez vous :
Sur un module il y a les dates des jours fériées et des dimanches (quelques soit l'année) et sur une table les jours congés.
Sur un formulaire il y a une zone texte qui contient la date d'aujourd'hui(Aujourdhui), sur une autre j'introduis un chiffre (NbJours) et sur une troisième (Le) apparait une date (la somme des 2). (une quatrième zone de texte (Texte62) stoque le numéro du dimanche)Une condition précise qu'il faut ajouter 1 si la date obtenue est un dimanche ou un jour fériée.
Cela fonctionne bien sauf si un jour ferrié est un samedi ou un dimanche.
Avez vous une solution
Code :
Texte62 = Weekday((Aujourdhui.Value + NbJours.Value), vbSaturday)
'Texte62 stoque la valeur du jour obtenu en ajoutant un chiffre à la date d'aujourd'hui
Le.Value = (NbJours.Value) + Aujourdhui.Value
If EstFerie(Le) Or Texte62 = "2" Then
' SI "Ce jour est férié" OU si "texte62" est un dimanche Donc on ajoute 1 jour à la somme
Le.Value = (NbJours.Value) + Aujourdhui.Value + 1
Else
Le.Value = (NbJours.Value) + Aujourdhui.Value
End If
Merci
A voir également:

1 réponse

Hydatid
 
Bonsoir
Le problème est partiellement résolu pour les jours fériés qui précèdent ou suivent un dimanche, solution :
J’ai ajouté code Férié pris de (https://access.developpez.com/faq/?page=dates#NbJourSsFeries) Auteur : MC2

Private Function EstWeek(laDate As Date)
'>1 et <7 : lundi à vendred
'>1 et <8 : lundi à samedi
EstWeek = ((Weekday(laDate) > 1) And (Weekday(laDate) < 8)) ' est un jour de la semaine (hors week-end)
End Function

J’ai changé le code du bouton avec une boucle
Le.Value = (NbJours.Value) + Aujourdhui.Value
While (EstFerie(Le) Or (Not (EstWeek(Le))))
Le.Value = Le.Value + 1
Wend
Le problème qui persiste concerne les jours congés contenus dans la table, comment les intégrés dans le code !

Merci pour votre aide
0
Hydatid
 
Bonjour,
Le problème est résolu, je vous remercie pour vos conseils.
J’ai crée une fonction “EstConge” basée sur la présence ou l’ absence dans une zone de liste (Liste74) dont la source est une table “T-Conge” d’une date calculée en l'ocurrence “Le”, ainsi mon code devient.
Code bouton :

Le.Value = (NbJours.Value) + Aujourdhui.Value
While (EstFerie(Le) Or (EstConge (Le) Or (Not (EstWeek(Le)))))
Le.Value = Le.Value + 1
Wend

Code fonctions:

Public Function EstConge(DateJ As Date) As Boolean
EstOtla = verifliste(Me.Liste74, Le.Value)
End Function
Private Function verifliste(Liste As ListBox, Valeur As String) As Boolean
'(https://access.developpez.com/faq/?page=zdl#VerifValExistZdl)
Dim i As Integer
For i = 0 To Liste.ListCount - 1
If Liste.ItemData(i) = Valeur Then verifliste = True
Next i
End Function

Merci à tous ceux qui m’ont aidé et notamment El Mehdi
0