SmartFAQ is developed by The SmartFactory (http://www.smartfactory.ca), a division of InBox Solutions (http://www.inboxsolutions.net)

[mDF] Peut-on utiliser le mDF XLcalendar pour saisir des dates dans un TextBox ?

Q&R publiée par MyDearFriend! le 03-05-2009 (4219 Lectures)
Fin 2007, la sortie du mDF XLcalendar, successeur du mDF Calendrier, avait apporté son lot de nouveautés et améliorations pour cet utilitaire d'aide à la saisie des dates pour Excel.

Il y a toutefois une évolution majeure qui est restée dans l'ombre et qui souffre encore d'une documentation à destination des développeurs VBA intéressés : le mDF XLcalendar est effectivement conçu également pour la saisie des dates dans des TextBox.

Ce mode d'utilisation fera prochainement l'objet d'un article dédié.

Dans l'attente... Vous êtes développeur d'une application Excel et souhaitez permettre la saisie de dates dans vos TextBox par simple clic de l'utilisateur ? Alors ce qui va suivre devrait retenir votre attention...


Les prérequis :

  • Comme vous comptez utiliser cet utilitaire en tant que contrôle lié à votre application, il convient d'une part de vous assurer que le poste utilisateur final aura bien cette macro complémentaire mDF XLcalendar installée au préalable.

  • Dans votre propre projet VBA, il convient d'autre part de définir la référence au projet mDF XLcalendar : depuis l'éditeur VBE, faire menu Outils / Références... / et cocher l'élément mDF XLcalendar et faire OK.

  • Il convient ensuite de décider quel évènement du TextBox sera utilisé pour déclencher l'affichage du XLcalendar : plusieurs possibilités existent (clic droit, Enter,...) mais je conseillerais l'évènement DblClick() pour ma part.


L'utilisation :

  • Comment déclencher l'affichage du calendrier et gérer ensuite le choix utilisateur (date choisie) ?
  • L'ensemble se déclenche à l'appel d'une seule procédure nommée mDFXLcalShow et dont la syntaxe est la suivante :

       mDFXLcalShow CalCtrl, CalFormat, CalLang    

    - CalCtrl : (obligatoire) Le contrôle TextBox lui-même doit être passé en tant qu'objet en argument à la procédure.

    - CalFormat
    : (facultatif) Le développeur peut décider du format de date qu'il souhaite voir s'afficher dans le TextBox en retour du clic utilisateur. Le format par défaut est "dd/mm/yyyy".
     

    - CalLang : (facultatif) L'utilitaire étant multilangue, le développeur peut décider ici de la langue à utiliser. A ce jour, les valeurs possible sont "FR" (valeur par défaut) pour le français avec jours fériés, "EN" pour l'anglais et "fr", également pour le français mais sans les jours fériés cette fois. L'intérêt de "fr" étant de permettre une utilisation du mDF XLcalendar en dehors de l'hexagone...


Exemple :

Vous avez un Userform comportant un TextBox nommé TextBox1. Dans le module de code de votre Userform, vous entrez la procédure évènementielle suivante :
DANS LE MODULE DE CODE DU USERFORM
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Cancel = True
    mDFXLcalShow CalCtrl:=TextBox1, CalFormat:="dddd dd/mm/yyyy", CalLang:="FR"
End Sub

Au double-clic dans le TextBox1, le mDF XLcalendar s'affichera avec son interface en français (avec jours fériés). Au clic de l'utilisateur (choix d'une date), la date s'affichera dans le TextBox1 sous la forme "dimanche 03/05/2009".


Un fichier exemple « Test mDF XLcalendar USF.xls » a été réalisé et devrait vous permettre d'aborder le principe plus facilement (à condition d'avoir le mDF XLcalendar effectivement installé sur votre machine !). Ce fichier a été posté dans le forum et vous pouvez le télécharger dans le post suivant du fil de discussions : Ouvrir un calendrier dans un Userform .
 

  Imprimer la Q&R Envoyer la Q&R