Numéro de semaine
Calcul du numéro de Semaine / Année de référence
Cette fonction permet :
- de tenir compte du bug de la dll Oleaut32.dll qui retourne parfois semaine 53 au lieu de 1
- d'éviter de cumuler les données de deux semaines 1 en début et en fin d'une même année
Function fnWeek(MyDate As Date) As String '/ Placez cette fonction dans un module général '/ Usage : dans un textebox '/ = fnWeek([champdate]) Dim NoSemaine As Integer Dim NoAnnee As Integer If Not IsDate(MyDate) Then fnWeek = "" Else NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays) If NoSemaine = 53 Then ' ' Correction Bug Oleaut32.dll (29/12/2003 par exemple) ' If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then NoSemaine = 1 End If End If Select Case NoSemaine 'Affecter la semaine 1 de fin d'année au début de l'année suivante Case 1 If Month(MyDate) = 12 Then NoAnnee = Year(MyDate) + 1 Else NoAnnee = Year(MyDate) End If Case Is < 52 NoAnnee = Year(MyDate) 'Affecter la semaine 52 ou 53 de début d'année à la fin d'année précédente Case Is >= 52 If Month(MyDate) = 1 Then NoAnnee = Year(MyDate) - 1 Else NoAnnee = Year(MyDate) End If End Select fnWeek = NoAnnee & "/" & Format(NoSemaine, "00") End If End Function
Dernière modification : 05/03/2006 22:21
Catégorie : Les mémos - Dates - Heures
Page lue 10290 fois