Faire appel à un calendrier avec un bouton
Bonjour à toute la communauté,
J'ai un soucis que j'aimerais soumettre au forum en espérant pouvoir y trouver une solution.
En fait je travaille sur un projet depuis quelques semaines qui nécessite d’insérer des dates
dans certains textbox. J'ai pensé immédiatement au calendrier mais comme je suis sous
la version 64 bits de office 2019, je n'ai pas accès à l'outil DatePicker. Alors j'ai un fouillé sur
le net et je suis tombé sur un calendrier qui me sied bien.
Mon seul soucis, c'est que je n'arrive à utiliser ce calendrier dans mon projet. Le calendrier
tel que le concepteur l'a réalisé marche super bien. Mais c'est moi qui n'arrive pas à l'intégrer
correctement.
Dans mon projet, suivant les différents userforms, j'ai besoin de faire appel au calendrier par
des textbox, des labels et des boutons. Quand je reprend le code du concepteur et que je l'adapte
pour mes contrôles, cela ne fonctionne pas exactement comme je le souhaite. Pire pour le bouton
de commande ça affiche une "erreur de débogage".
En résumé voici ce que je voudrais faire. J'ai créé à titre d'exemple un userform nommé "Form_Date"
qui comporte un textbox, un label et un bouton de commande. J'aimerai au click de chacune de
ces commandes que le calendrier s'affiche à coté de la commande mais que le "Form_Date"
soit toujours actif derrière le calendrier.
A la fin j'aimerais pouvoir récupérer la date choisi dans la commande txt_Date. Je précise que je suis
un débutant dans Excel VBA.
Toute aide est la bienvenue!
Recevez mes cordiales salutations!
Bonjour Bana,
J'ai amendé le code du userform "Form_Date" de la façon suivante :
Private Sub Bouton_Date_Click()
fmSTD_Calendrier.SelectDateCTRL2 Me, Me.Controls("LBtn"), Me.Controls("LBtn"), "deb"
Me.Bouton_Date.Caption = Me.lBtn.Caption
End Sub
Private Sub Lbl_Date_Click()
fmSTD_Calendrier.SelectDateCTRL2 Me, Me.Controls("Lbl_Date"), Me.Controls("Lbl_Date"), "deb"
End Sub
Private Sub Txt_Date_Enter()
fmSTD_Calendrier.SelectDateCTRL2 Me, Me.Controls("Txt_Date"), Me.Controls("Txt_Date"), "deb"
End SubLe problème étant que le module auquel tu fais appel :
- attend en second et troisième paramètre une référence à un objet "Control" et non à la propriété par défaut du controle tel que tu l'a écrit.
- n'a pas été conçu pour fonctionner avec un contrôle de userform de type "CommandButton". De ce fait, j'ai placé un contrôle "Label" : "LBtn" avec propriété visible = false comme intermédiaire pour renseigner la propriété caption du bouton.
Je renvois en P.J. ton classeur modifié.
Merci beaucoup Gérard! Ton apport m'a été d'un grand aide
Cordialement!