Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
le calendrier natif de Windows sans l'ocx dans nos userformspour excel 64 et 32 bits
3.4
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Pour les puriste Utiliser le calendrier natif de Windows (SysMonthCal32) sans le contrôle OCX DatePicker, qui n’est pas compatible Office 64 bits, tout en conservant :
l
Bonjour @fanch55
meilleurs veux egalement et surtout la santé
1° alors oui en effet cette derniere version n'utilsant pas le mapwindowpoint pour le hitest il semblerait que le clic ailleurs que les jours puisse être responsif a tord (visiblement selon les configs )
chez moi il n'y a que les semaines et jours cliquables ca peut être pratique quand on veut le lundi de la semaine X
2° les couleurs sont annulées si tu met 1 dans orinal color
3°visiblement aussi selon les version de windows ou config l'interface est différent
ORC=0 mais toujours pas de couleurs .
J'ai essayé de tout mettre en rouge avant le Show pour voir, seule la barre verticale de séparation des semaines a été rougie ( MCSC_TEXT ) .
Je ne semble pas avoir le même calendrier système que toi .
Salut,
une explication cohérente pour le problème des couleurs ( I.A Microsoft Copilot ):
Sur Windows 10, SysMonthCal32 respecte encore assez bien MCM_SETCOLOR. Sur Windows 11 (nouvelle version des common controls + thèmes + mode clair/sombre), une partie des couleurs que tu forces est simplement ignorée ou sur-dessinée par le thème système, même si MCM_SETCOLOR lui-même est toujours documenté de la même manière.
1. Ce qui se passe concrètement sous Windows 11
Le contrôle est thémé : SysMonthCal32 est dessiné avec les styles visuels modernes (comctl32 v6). Dans ce mode, certaines parties (titre, fond, textes) sont dessinées en tenant compte du thème Windows, et pas uniquement de tes couleurs.
MCM_SETCOLOR reste fonctionnel, mais pas partout : la doc indique que tu peux modifier MCSC_BACKGROUND, MCSC_TEXT, MCSC_TITLEBK, etc., mais sous thème moderne, certains éléments restent contrôlés par le thème ou par le mode clair/sombre, surtout le titre et l’arrière‑plan général.
Résultat : ton code fonctionne encore sur une version plus ancienne des contrôles (Windows 10) et devient partiellement ou totalement ignoré sur Windows 11, alors que l’API est la même.
2. Tentatives de contournement possibles
a) Désactiver le thème visuel pour le contrôle
En C/C++ on peut appeler SetWindowTheme(hWnd, L"", L"") pour désactiver le thème visuel d’un contrôle et revenir à un rendu “classique”. Dans certains cas, ça redonne le contrôle complet sur les couleurs. Sur Windows 11, ce contournement est moins fiable qu’avant, mais tu peux tenter la même approche en VBA avec des déclarations API.
Exemple (à adapter à ton module, 32/64 bits, etc.) :
VB:
#If VBA7 Then
Private Declare PtrSafe Function SetWindowTheme Lib "uxtheme.dll" ( _
ByVal hWnd As LongPtr, _
ByVal pszSubAppName As LongPtr, _
ByVal pszSubIdList As LongPtr) As Long
#Else
Private Declare Function SetWindowTheme Lib "uxtheme.dll" ( _
ByVal hWnd As Long, _
ByVal pszSubAppName As Long, _
ByVal pszSubIdList As Long) As Long
#End If
Code:
' Désactiver le thème visuel
SetWindowTheme DatePickeHwnd, 0, 0
' Puis seulement ensuite appliquer les couleurs
SendMessageW DatePickeHwnd, MCM_SETCOLOR, MCSC_TITLEBK, bm.BackColor
' etc.
Si malgré ça Windows 11 continue de sur-dessiner certaines parties, tu auras la confirmation que le thème moderne a la main.
3. Ce que tu peux raisonnablement attendre
Ce qui peut encore marcher:
Couleurs du texte des jours (MCSC_TEXT, MCSC_TRAILINGTEXT) ont plus de chances d’être prises en compte que le fond global.
Ce qui est souvent perdu sur Windows 11:
Personnalisation complète du fond, du titre, et du “chrome” du contrôle (barre de titre, bordures), surtout si le système est en thème sombre / clair dynamique.
Alternative si tu as besoin de contrôle total:
Créer ton propre calendrier en VBA (grille de Label dans un Frame, par exemple).
Utiliser un contrôle tiers (ActiveX ou autre) qui expose officiellement les propriétés de couleur, plutôt que de “forcer” un contrôle système de plus en plus piloté par le thème.
4. En pratique, que faire dans ton projet
Tester SetWindowTheme + ton code de couleurs sur une machine Windows 11.
Identifier précisément ce qui change encore (texte des jours, fond des cases, titre).
Si le résultat reste insuffisant visuellement, prévoir un “mode dégradé” sur Windows 11, où tu acceptes de respecter davantage le thème système, ou bien passer à un calendrier personnalisé en UserForm.
Sous Windows 11 Excel 2016 , je n'ai pas les couleurs. J'ai testé le SetWindowTheme, cela ne semble pas marcher. Le calendrier s'adapte aux couleurs du thème windows en cours.
Exemple avec Thème contrasté Crépuscule :
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD