Bonjour,
Dans cette procédure, je passe en revue un certain nombre de date calculée à partir d'une date initiale et incrémentée à chaque passage. J'ai besoin de savoir si cette date est un jour férié ou non. Je dispose donc dans une feuille de la liste des jours fériés, et j'utilise la fonction FIND
La liste des jours fériés dans la feuille JoursFériés est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Option Explicit Dim DateEnCours As Date Dim DateFin As Date Dim c As Range Sub recherche() DateEnCours = CDate("01/01/2010") DateFin = CDate("20/01/2010") Do While DateEnCours < DateFin Set c = Sheets("JoursFériés").Columns(1).Cells.Find(what:=DateEnCours) If Not c Is Nothing Then MsgBox DateEnCours & " FERIE" Else MsgBox DateEnCours & " OUVRE" End If DateEnCours = DateEnCours + 1 Loop End Sub
Jour
14/07/2008
15/08/2008
11/11/2008
25/12/2008
01/01/2009
13/04/2009
01/05/2009
08/05/2009
21/05/2009
01/06/2009
14/07/2009
15/08/2009
01/11/2009
11/11/2009
25/12/2009
01/01/2010
05/04/2010
01/05/2010
08/05/2010
13/05/2010
24/05/2010
14/07/2010
01/11/2010
11/11/2010
25/12/2010
Ca marche bien en général : c renvoie Nothing si le jour n'est pas férié, et la date trouvée si le jour est férié. SAUF dans un cas particulier : pour le cas où DateEn Cours est le 11/01/2010 (non férié...) il me renvoie la date du 11/11/2010. J'ai beau tourner le pb dans tous les sens, je ne trouve pas d'explication, donc pas de solution.
D'où cela peut-il venir ?
Merci pour votre réponse.
Partager