Bonjour
Le problème s'est posé à moi(s ) un jour, et les codes que j'ai trouvé sur le net étaient des usines à gaz, alors que finalement c'est relativement simple, grâce à la fonction VBA DAteAdd.
Seule limite à cette fonction : si une semaine est à cheval sur deux mois, le mois pris en compte sera celui du même jour de la semaine que le 1er janvier de l'année fournie en paramètre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Public Function SemaineToMois(annee As String, semaine As String) As Integer Dim jour As Date jour = DateAdd("ww", semaine, DateSerial(annee, 1, 1)) Debug.Print jour SemaineToMois = month(DateAdd("ww", semaine, DateSerial(annee, 1, 1))) End Function Sub essai() Debug.Print SemaineToMois(2010, 39) End Sub
Exemple : en 2010 le 1er janvier est un vendredi. Pour la semaine 39 par exemple, la fonction fournit le mois d'octobre car le vendredi de la semaine 39 est le 1er octobre.
Partager