Rapport de message :*
 

Re: Ouvrir un calendrier dans un userform

Titre du sujet : Re: Ouvrir un calendrier dans un userform
par myDearFriend! le 10/01/2009 22:35:14

Bonsoir Fonfon1479,

Les jours qui précèdent le jour de l'an sont traditionnellement les jours pendant lesquels on se fixe les bonnes résolutions pour l'année à venir... Comme tout à chacun, j'ai fait ma liste... et dans cette liste, il y a notamment le tutoriel que je me suis promis de mettre en ligne, expliquant les possibilités d'utilisation du mDF XLcalendar avec les TextBox sur Userforms. Le plus difficile je crois, c'est d'arriver à ce remotiver suffisamment...

En effet, à l'origine, cet utilitaire était conçu uniquement pour compléter des cellules de feuille de calcul. Et ce fut strictement le cas jusqu'à la version mDF Calendrier v3.0 incluse (cliquez ICI pour voir le tableau des versions successives de cet utilitaire). Depuis la refonte de cette application sous le nom mDF XLcalendar (il y a environ 1 an et demi), l'utilisation dans des TextBox est désormais possible...

Cela dit, comme je sais que cette procédure est attendue (et par certain(s) en particulier), voici les grandes lignes qu'il convient de respecter (je donnerai tous les détails dans le tutoriel) :


Les prérequis :
  • Comme tu comptes utiliser cet utilitaire comme un contrôle lié à ton application, il convient d'une part de t'assurer que le poste utilisateur final aura bien cette macro complémentaire installée.
  • Dans ton 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. 

L'utilisation :
  • Il convient ensuite de définir quel évènement du TextBox devra déclencher l'affichage du Calendrier : plusieurs possibilités existent (clic droit, Enter,...) mais je te conseillerai l'évènement DblClick() pour ma part.
  • Comment déclencher l'affichage du calendrier et gérer 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 de départ doit être passé en argument à la procédure.
    - CalFormat
    : (facultatif) Le développeur peut choisir le format de date qu'il souhaite voir s'afficher dans le TextBox. 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), "EN" et "fr".  "fr" permet d'obtenir une interface en français, mais sans les jours fériés spécifiques à l'hexagone (tu devrais apprécier je pense, car sauf erreur tu nous viens du québec je crois ).


    Exemple : 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). Lors de la sélection d'une date par l'utilisateur, cette date s'affichera dans le TextBox sous la forme "samedi 10/01/2009".

    Ci-joint un exemple de ce qu'il est possible d'obtenir si le mDF XLcalendar est déjà installé sur la machine...

    Cordialement,