Bonjour,
Mon souci est le suivant : je travaille sur des variations de volumes d'une usine où les données me sont données avec des dates en semaine-année (par ex. 52-2013). J'ai besoin de convertir ces dates en dates jj/mm/aaaa pour pouvoir calculer des différences de dates (je prends ss-aaaa et je génère une date jj/mm/aaaa au lundi). Ensuite je reconvertis en semaine-année et j'obtiens un souci au moment du changement d'année (j'obtiens par ex semaine 53-2013 puis 2-2014, la semaine 1-2014 a disparu).
C'est assez logique car le lundi que je génère va quasiment toujours se trouver lors de l'année précédente. Ainsi je cherche un moyen d'éviter cette semaine 53.
j'ai trouvé sur le site grenier-Access cette fonction qui me permet de générer une date au lundi à partir d'un numéro de semaine et d'année.
J'aimerais à présent générer une date au dimanche : savez vous comment je peux le faire avec un minimum de modifications?
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 Function convDate( _ ByVal intAnnee As Long, _ Optional ByVal intSemaine As Long = 1) Dim dt As Date ' Trouver le 1er jour de la semaine 1 de l'année ' (pas forcément le 1/1/aaaa en France !) dt = DateSerial(intAnnee, 1, 1) While DatePart("ww", dt, vbMonday, vbFirstFourDays) <> 1 dt = dt + 1 Wend ' Calculer le 1er jour de la semaine demandée dt = dt - DatePart("w", dt, vbMonday) + 1 dt = dt + 7 * (intSemaine - 1) convDate = dt End Function
Est-ce que l'option VbFirstFullWeek pour la semaine 1 peut-elle convenir (dans ce cas je garde mes dates au lundi)?
Avez vous déjà rencontré ce "problème de semaine 53" et dans ce cas quelle est la meilleure solution?
Je sais que ce n'est pas un sujet facile et je remercie grandement ceux qui prendront du temps pour me lire et me répondre.
Merci beaucoup,
Ostrich95
Partager