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

 1263823 visiteurs

 1 visiteur 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 10345 fois

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