En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour vous proposer des contenus et services adaptés. Mentions légales.

Recherche

Recherche

Les mémos

Je débute...

Visites

 1224832 visiteurs

 15 visiteurs en ligne

Nous contacter

Contact

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


Catégorie : Les mémos - Dates - Heures
Page lue 10187 fois

Vous êtes ici :   Accueil » Numéro de semaine