Trouver la semaine correspondante a une date

Contenu du snippet

Cette petite fonction permet de trouver le n° de la semaine de la date voulue

Source / Exemple :


'Fonction pour connaitre le N° de semaine d'une date
Function FindWeek(Jour As String) As String
    
    Dim i As Integer, TempWeek As Long
    Dim TempDay As Date
    
    'Vérifie que la date est valide
    If IsDate(Jour) = False _
        Then FindWeek = 0: Exit Function
    
    'Compteur qui va balayer les dates en comptant les semaines
    For i = 1 To 365

        'Init de la date et du n° de semaine
        If i = 1 Then
            'Init au 01/01/ de l'année de la date demandée
            TempDay = "01/01/" & Year(Jour)
                'Si le jour est ni samedi ni dimanche alors semaine 1 (sinon dans la semaine 0)
                If Weekday(TempDay, vbMonday) < 6 _
                Then TempWeek = 1 _
                Else TempWeek = 0
        Else
            'incremente le jour
            TempDay = TempDay + 1
            'incremente la semaine si le jour est lundi
            If Weekday(TempDay, vbMonday) = 1 _
                Then TempWeek = TempWeek + 1
        End If
        
        'Qd le compteur de jour arrive a la valeur demandée renvoie le n° de la semaine
        If TempDay = Jour _
            Then FindWeek = TempWeek: Exit Function
        
    Next
    
End Function

'Petit ex pour tester
Sub Test()
    MsgBox FindWeek("21/04/2012")
End Sub

Conclusion :


Voila simple mais souvent utile pour faire de la plannification

A voir également

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.