Private Sub UserForm_Initialize()
Dim Rc As RECT, H As Long, W As Long, TodayWidth As Long, PPX As Double, StyleW
Frame2.Move 1000
PPX = 72 / AppDpi
StyleW = WS_CHILD Or WS_VISIBLE Or IIf(Not aft.Value = 1, MCS_NOTODAY, 0) Or IIf(WEEKC.Value = 1, 4, 0)
Frame1.Enabled = False
DatePickeHwnd = CreateWindowExA(0, "SysMonthCal32", vbNullString, StyleW, 0, 0, 0, 0, Frame1.[_GethWnd], 0, 0, 0)
If ORC.Value = 0 Then
SetWindowTheme DatePickeHwnd, 0, 0
' SendMessageW DatePickeHwnd, MCM_SETCOLOR, MCSC_BACKGROUND, RGB(180, 0, 180) 'background(attention ne colore que autour du calendrier)
SendMessageW DatePickeHwnd, MCM_SETCOLOR, MCSC_TITLEBK, bm.BackColor 'background des titres (mois année/et selection
SendMessageW DatePickeHwnd, MCM_SETCOLOR, MCSC_TITLETEXT, tm.BackColor 'couleur du texte des titres mois année
SendMessageW DatePickeHwnd, MCM_SETCOLOR, MCSC_MONTHBK, Bj.BackColor 'backgroud des cellules jour
SendMessageW DatePickeHwnd, MCM_SETCOLOR, MCSC_TEXT, cj.BackColor 'couleur du texte des cellules jours du mois selectionné
SendMessageW DatePickeHwnd, MCM_SETCOLOR, MCSC_TRAILINGTEXT, cj2.BackColor ''couleur du texte des cellules jours en dehors du mois selectionné
End If
SendMessageW DatePickeHwnd, MCM_GETMINREQRECT, 0, VarPtr(Rc)
TodayWidth = SendMessageW(DatePickeHwnd, MCM_GETMAXTODAYWIDTH, 0, 0)
If TodayWidth > Rc.Right Then: Rc.Right = TodayWidth
SetWindowPos DatePickeHwnd, 0, 0, 0, Rc.Right, Rc.Bottom, SWP_NOMOVE
Frame1.Move 0, 0, Rc.Right * PPX, Rc.Bottom * PPX
Move 0, 5000, Frame1.Width + (Width - InsideWidth), Frame1.Height + (Height - InsideHeight)
End Sub