Bonjour à tous,
J'utilise la fonction Invdatepart défnie dans le lien http://vb.developpez.com/faq/?page=Dates#invdatepart.
Cependant lorsque j'execute la fonction avec invdatepart(1,1,2011) elle me retourne "03/01/2011" au lieu de "27/12/2010" (premier jour de la premiere semaine de l'année 2011).
Pour cela obtenir la date exacte j'ai retiré la condition
If Weekday(tmpDate, vbMonday) < 6 Then
, et par conséquent je soustrait toujours 1 un au numéro de semaine passé en argument.
La fonction devient donc :
1 2 3 4 5 6 7 8 9 10
|
Public Function InvDatePart(ByVal PosJour As Integer, ByVal NumSemaine As Integer, ByVal Annee As Integer) As Date
tmpDate = CDate("1/1/" & Format$(annee))
NumSemaine = NumSemaine - 1
tmpDate = DateAdd("ww", NumSemaine, tmpDate)
tmpDate = DateAdd("d", PosJour - Weekday(tmpDate, vbMonday), tmpDate)
Convertir_semaine_date = tmpDate
End Function |
Quelqu'un peut-il me confirmer que la fonction présente dans la FAQ contient une erreur ?
Merci d'avance.
Partager