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
Attention la commande Mode Création du ruban Développeur est alors active, pour faire le test de fonctionnement, vous devrez d'abord la désactiver.
- 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…