Dim An As Integer
Private Sub CbMois_Change()
    Dim semDep As Integer, semFin As Integer, i As Integer
    If CbMois.ListIndex = -1 Then Exit Sub
    '
    ' Numéro iso des première et dernière semaines du mois
    semDep = Application.IsoWeekNum(DateSerial(An, CbMois.ListIndex + 1, 1))
    semFin = Application.IsoWeekNum(DateSerial(An, CbMois.ListIndex + 2, 0))
    '
    ' si le 1 janvier est en semaine 52 ou semaine 53 de l'année précédente alors semDep = 1
    If semDep > 51 Then semDep = 1
    '
    ' Nettoyage et garniture de la combobox
    CbSem.Clear
    '
    For i = semDep To semFin: CbSem.AddItem i: Next
    
End Sub
Private Sub CbSem_Change()
    Dim idx As Variant
    Dim Lundi As Date
    '
    ' Si aucun choix -> sortir
    If CbSem.ListIndex = -1 Or CbMois.ListIndex = -1 Then Exit Sub
    '
    ' Calcul du lundi correspondant au numéro de semaine
    Lundi = 7 * Val(CbSem) + DateSerial(An, 1, 3) - Weekday(DateSerial(An, 1, 3)) - 5
    '
    '
    With ThisWorkbook.Sheets(UCase(CbMois.Value)).Range("B3:BX3")
        '
        ' Récupérer l'index de cellule de la date dans la plage
        idx = Application.Match(CLng(Lundi), .Cells, 0)
        '
        ' si trouvé alors y aller
        If Not IsError(idx) Then Application.Goto .Cells(1, idx), True
    End With
End Sub
Private Sub UserForm_Initialize()
    '
    ' Récupération de l'année en cours
    An = ThisWorkbook.Sheets("JANVIER").Range("H1").Value
End Sub