'mise ajour du clavier
Public Sub ReloadClavier()
Dim X&, I&, A&, NB_JOURS&, Y&, WkD&, j&
If Cbmonth.Value = "" Or Cbyear.Value = "" Then Exit Sub
Select Case Calendar.region
Case 0, 22: WkD = vbSunday: j = 1
Case 1, 2, 12, 13: WkD = vbMonday: j = 2
End Select
X = Weekday(DateSerial(Calendar.Cbyear, Calendar.Cbmonth.ListIndex + 1, 1), WkD)
NB_JOURS = Day(DateSerial(Cbyear.Value, Cbmonth.ListIndex + 2, 0))
For I = 1 To 6: Me.Controls("sem" & I) = "": Next
For I = 1 To 42
With Calendar.Controls("j" & I)
.Caption = "": .Enabled = False: .BackColor = bt2Back: .ControlTipText = ""
If I >= X And A <= NB_JOURS - 1 Then
.Visible = True: A = A + 1: .Enabled = True: .Caption = A: .BackColor = bt1Back
Y = CLng(DateSerial(Calendar.Cbyear.Value, Calendar.Cbmonth.ListIndex + 1, A))
Controls(.Tag).Caption = Evaluate("= TRUNC((" & Y & "-WEEKDAY(" & Y & "," & j & ")+11-DATE(YEAR(" & Y & "-WEEKDAY(" & Y & " ," & j & ")+4),1,1))/7)")
.BackColor = férié(I)
End If
End With
Next
End Sub