tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 30 janv. 2006 à 11:37
Effectivement, des fois, il sort 53 à la place 52, j'avais pas vu
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 30 janv. 2006 à 11:18
??? je ne comprends pas ton post Ricks.
La semaine 53 exite si le 1er janvier commence un vendredi, samedi ou dimanche.
Le seul bug de la fonction format est qu'étant donné que Weekday commence un Dimanche (va savoir pourquoi), il décale tous les résultats d'un jour.
Ainsi le 01/01/06 (qui est un dimanche) fait parti de la semaine 1 pour lui, hors ça fait tjs parti de la semaine 53!!!!
Donc pour rectifier celà, il suffit de faire:
Format((date - 1),"ww")
sarl_adc
Messages postés141Date d'inscriptionlundi 3 novembre 2003StatutMembreDernière intervention20 octobre 2005 27 avril 2005 à 16:21
Merci pour ce source qui m'a évité pas mal de lignes de code et de réfléexion ;-)
Merci pour ton comm Ricks27 aussi, sans lequel j'aurais pu avoir un joli bug dans les années à venir !
Ricks27
Messages postés79Date d'inscriptionmardi 4 juin 2002StatutMembreDernière intervention29 juillet 2005 8 juil. 2002 à 09:13
Tu oublies de gérer le bug de la fonction Format. Car ds certain cas, celle-ci renvoie 53 au lieu de 52.
Function TrouverNuméroSemaine(ByVal Dte As Date) As Integer
TrouverNuméroSemaine = Format(Dte, "ww", vbSaturday, vbFirstFullWeek)
If TrouverNuméroSemaine > 52 Then
If Format(Dte + 7, "ww", vbMonday, vbFirstFullWeek) = 2 Then
TrouverNuméroSemaine = 1
End If
End If
End Function
30 janv. 2006 à 11:37
30 janv. 2006 à 11:18
La semaine 53 exite si le 1er janvier commence un vendredi, samedi ou dimanche.
Le seul bug de la fonction format est qu'étant donné que Weekday commence un Dimanche (va savoir pourquoi), il décale tous les résultats d'un jour.
Ainsi le 01/01/06 (qui est un dimanche) fait parti de la semaine 1 pour lui, hors ça fait tjs parti de la semaine 53!!!!
Donc pour rectifier celà, il suffit de faire:
Format((date - 1),"ww")
27 avril 2005 à 16:21
Merci pour ton comm Ricks27 aussi, sans lequel j'aurais pu avoir un joli bug dans les années à venir !
8 juil. 2002 à 09:13
Function TrouverNuméroSemaine(ByVal Dte As Date) As Integer
TrouverNuméroSemaine = Format(Dte, "ww", vbSaturday, vbFirstFullWeek)
If TrouverNuméroSemaine > 52 Then
If Format(Dte + 7, "ww", vbMonday, vbFirstFullWeek) = 2 Then
TrouverNuméroSemaine = 1
End If
End If
End Function