Function WeekNumber(Optional ByVal vDate As Variant) As Byte If IsMissing(vDate) Then vDate = Date Dim iNbJour As Integer Dim iWeekDay As Integer Dim bValTemp As Byte Dim a As String Dim b() As String iWeekDay = Weekday(CDate("01/01/" & DatePart("yyyy", vDate))) Select Case iWeekDay Case 1: bValTemp = 5: Case 2: bValTemp = 6: Case 3: bValTemp = 0: Case 4: bValTemp = 1: _ Case 5: bValTemp = 2: Case 6: bValTemp = 3: Case 7: bValTemp = 4 End Select iNbJour = CLng(DateDiff("d", CDate("31/12/" & DatePart("yyyy", vDate) - 1), vDate)) a = IIf((iNbJour + bValTemp) / 7 < 1, 53, CStr((iNbJour + bValTemp) / 7)) If VarType(a) = vbString Then b() = Split(a, ","): WeekNumber = b(0): Erase b Else WeekNumber = a End Function Sub Exemple_Utilisation() MsgBox WeekNumber(#1/8/1990#) MsgBox WeekNumber() End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.