Dans cette article je souhaite expliquer comment utiliser les contrôles ActiveX "Microsoft Monthview "et "Microsoft DTPicker", puisqu'ils ne sont plus fournis en natif dans les versions Excel 2013 et 2016. Dans une première partie nous développerons la récupération et l'installation de ces contrôles, puis leurs utilisations pour contrôler efficacement une saisie de date dans une feuille de calcul ou dans un formulaire VBA.
Installation des contrôles
Vous devez ensuite copier le fichier dans le dossier c:\Windows\system32 si vous avez une version 32 bits de Windows, ou dans le dossier c:\windows\sysWOW64\ en cas de version 64 bits.
Il faut à présent Exécuter le fichier OCX, pour cela activer l'invite de commande en mode Administrateur : Utiliser la commande CMD dans votre commande Démarrer / Exécuter ou dans la zone de recherche selon votre version de Windows. Attention de bien valider la saisie à l'aide des touches SHIFT+ CTRL + Entrée du clavier pour bien basculer l'invite de commande en mode Administrateur.
La ligne de commande à saisir, sera alors :
Pour windows 32 bits : %systemroot%\System32\regsvr32 c:\windows\System32\MSCOMCT2.OCX
Pour windows 64 bits : %systemroot%\SysWoW64\regsvr32 c:\windows\SysWOW64\MSCOMCT2.OCX
Utilisation des contrôles dans Excel : Saisir une date dans une cellule
- Accéder à l'onglet Développeur du Ruban
- Utilisez la commande Insérer / contrôles ActiveX / Autres contrôles
- Sélectionnez le contrôle "Microsoft Date and Time Picker control 6.0 (SP6)"
- Dessinez l'objet en glissant + Positionnement et redimensionnement

- Quelques réglages de bases possibles grâce au menu contextuel de l'Objet
- Pour affectez le choix utilisateur à une cellule, utilisez la commande Propriétés du Menu contextuel,
- Renseignez la propriété LinKedCell
Utilisation des contrôles en VBA : Saisir une date dans un formulaire
Nous allons en premier lieu ajouter les contrôles dans la boite à Outils :
- Affichez la boîte à outils
- Faites clic droit pour obtenir le menu contextuel de la boîte
- Sélectionner alors la commande Contrôle Supplémentaires…
- Dans la liste des contrôles Choisissez "Microsoft MonthView control 6.0 (SP6)" et "Microsoft Date and Time control 6.0 (SP6)"
- Cliquez sur OK
- Dessiner les 2 objets MonthView1 et DTPicker1 sur votre formulaire grâce aux nouveaux contrôles apparaissant dans la boîte à outils.
Ici le code VBA nous montre comment affecter le choix de l'utilisateur dans un contrôle ou l'autre, à une cellule de la feuille de calcul.
Private Sub CommandButton1_Click()
Range("a10").Value = DTPicker1.Value
Range("a11").Value = MonthView1.Value
UserForm1.Hide
End Sub
Merci de votre attention…
11 commentaires:
bonjour,
j'ai réussi à faire cela avec Excel 2016/32 Bits sur un Windows 32 bits. Par contre je ne parviens pas à le faire sur un Windows 64 bits avec un Excel 64 bits !!!!
avez-vous uns solution ?
cordialement
anniebadey@orange.fr
Bonsoir,
A priori si le fichier est copié dans le bon dossier c:\windows\sysWOW64\
et le ligne de commande %systemroot%\SysWoW64\regsvr32 c:\windows\SysWOW64\MSCOMCT2.OCX exécuter correctement il n'y a pas de soucis.
Bien qu'une fois j'ai vu un blocage pour certains contrôle à cause d'une clé incorrecte dans la base de registre, il faut peut être cherché de ce cote là.
Regarde çà : https://support.microsoft.com/fr-fr/kb/2793374
Bon courage
Olivier
Bonjour,
J'ai suivi scrupuleusement chacune des étapes (2 fois) afin d'installer le contrôle, cependant arrivée à l'invitation de commandes, je reçois un message qui m'indique,
"Echec du chargement du module c:\windows\System32\MSCOMT2.OCX
Vérifiez que le fichier binaire est stocké à l'emplacement désigné par le chemin d'accès spécifié ou déboguez le pour rechercher d'éventuels problèmes de fichier .DLL binaire ou dépendants.
Le module spécifié est introuvable"
Pouvez vous m'aider ?
Bien cordialement
Mathilde
Bonsoir,
Alors là ... super. Depuis le temps que je galère pour retrouver mes DTPICKERS un seul mot me vient! MERCI
Grand merci pour ce tutoriel.
Cordialement,
Merci pour cette astuce qui a très bien fonctionné sur ma config : Win10/64 et Excel365/64 !
Fred
Bonjour, Je cherche a faire la meme chose sur un powerpoint.
J'ai tout fais comme expliqué mais je ne sais pas comment recuperer la valeur du UserForm dans un Label.
Pouvez vous m'aider?
Merci
Bonjour,
Malheureusement ce contrôle ne fonctionne pas sous un Microsoft office 64 bits, ce dernier n'est pas et ne sera pas optimisé pour VBA. Si vous souhaitez utiliser ce contrôle il vous faudra réinstaller office en 32 bits.
Cordialement.
Bonjour et merci pour votre article, cela m'a bien aidé.
Bonne continuation à vous et bonnes fêtes de fin d'année 2017 ! :-)
Super Tutorial, clair, précis, et efficace.
Fonctionne parfaitement avec Excel 2007 sous Vista 32 bits
Merci mille fois.
Fonctionne impeccablement bien avec Office 2016 en version 32 et 64 Bits.
Merci beaucoup!
Enregistrer un commentaire