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 Sub

Le 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!

Rechercher des sujets similaires à "appel calendrier bouton"