Développement d'un Userform Calendrier sous Excel

Fred92

XLDnaute Nouveau
Bonsoir à tous,

J'essaie de développer un Calendrier en VBA qui puisse être appelé en cliquant sur un contrôle Label placé dans un USERFORM. Le but est qu'après avoir sélectionné une date dans ce Calendrier, celle-ci s'affiche directement dans le contrôle Label du USERFORM.

Je précise que je ne souhaite pas utiliser l'objet DATE AND TIME PICKER CONTROL 6.0 comme calendrier.

Or je bloque actuellement sur le transfert de la date sélectionnée du calendrier vers le USERFORM (sachant que je souhaiterais que ce calendrier puisse être utilisé avec n'importe quel USERFORM, le contrôle de destination devant donc être un paramètre).

Je vous joins en pièce jointe copie de mon fichier et vous remercie par avance de l'aide que vous pourrez m'apporter (pour faire apparaître le calendrier cliquer sur le label où figure la date du jour).

Je reste à votre disposition pour tout renseignement complémentaire.

Fred92
 

Pièces jointes

  • Calendrier_V4.xlsm
    47 KB · Affichages: 89
  • Calendrier_V4.xlsm
    47 KB · Affichages: 93
  • Calendrier_V4.xlsm
    47 KB · Affichages: 109

camarchepas

XLDnaute Barbatruc
Re : Développement d'un Userform Calendrier sous Excel

Bonjour ,

Pour transférer ta date d'un userform à l'autre utilises une variable public défini dans un module standard.

Exemple : Public Date_Choisie as string

ensuite dans le userform date_choisie = textbox xxx
ou
dateactuelle = date_choisie

Il faut également revérifier le fonctionnement de ton calendrier qui visiblement pêche un peu .
 

Fred92

XLDnaute Nouveau
Re : Développement d'un Userform Calendrier sous Excel

Bonsoir Camarchepas,

Tout d'abord merci pour avoir consulté ma demande et y avoir répondu.

Dans le fichier joint, il y a bien deux variables publiques qui sont stockées dans le module standard A_FRM_Calendrier_Module. Ces variables sont:

Public DateCalendrier As Date (qui sert au stockage de la date)
Public ControleName As control (qui doit servir en théorie à stocker le nom du contrôle (le Label) dans lequel doit être retourné la date).

Le Calendrier en lui même fonctionne maintenant. Le message d'erreur provenait d'une erreur de ma part ayant oublié de définir la variable objet (ControleName) avec l'instruction Set (je renvoie le fichier modifié).

Cependant, en sélectionnant une date, je n'arrive toujours pas à retourner cette valeur dans le Label du USERFORM1.

L'objet ControleName n'a pas de propriété "Caption" et je pense que le problème vient de là.

Qu'en pensez vous? Comment obtenir cette propriété Caption?

Fred92
 

Pièces jointes

  • Calendrier_V4.xlsm
    48 KB · Affichages: 88
  • Calendrier_V4.xlsm
    48 KB · Affichages: 168
  • Calendrier_V4.xlsm
    48 KB · Affichages: 107

camarchepas

XLDnaute Barbatruc
Re : Développement d'un Userform Calendrier sous Excel

Allez ,

un petit exemple avec un calendrier venat de XLD , et légérement transformé ..
 

Pièces jointes

  • Calendrier_user.xlsm
    33.5 KB · Affichages: 148
  • Calendrier_user.xlsm
    33.5 KB · Affichages: 127
  • Calendrier_user.xlsm
    33.5 KB · Affichages: 121

Fred92

XLDnaute Nouveau
Re : Développement d'un Userform Calendrier sous Excel

Rebonsoir Camarchepas,

J'ai essayé le fichier que tu m'as envoyé et il y a un message d'erreur "Incompatibilité de Type" lorsqu'on appel le calendrier en cliquant sur le bouton CommandButton1:

la ligne de code qui pose problème:

TextBox1.Text = Calendriers.Calendrier(CDate(TextBox1.Text))

As tu le même message d'erreur?

Merci pour ton aide.

Fred92
 

Fred92

XLDnaute Nouveau
Re : Développement d'un Userform Calendrier sous Excel

Bonjour Si...,

Tout d'abord merci pour ton aide. La solution que tu proposes ne répond pas à la problématique. En effet dans le module du Calendrier la ligne que tu as écrite pour renseigner FRM_USERFORM1 est:

FRM_USERFORM1.FRM_Date_Saisie = CDate(CaseJR & "/" & CbMois.ListIndex + 1 & "/" & CbAnnee)

Sauf que FRM_USERFORM1 doit être une variable pour que ce Calendrier puisse être utilisé avec n'importe quel USERFORM. Dans ton cas, la date sélectionnée sera retournée à seulement FRM_USERFORM1.

J'espère avoir été suffisamment clair dans mes explications.

Dans l'attente de vous lire car pour le moment je bloque complètement.

Fred92
 

Si...

XLDnaute Barbatruc
Re : Développement d'un Userform Calendrier sous Excel

salut

à voir avec 2 variables "Public" bien typées.
je n'ai pas fait de contrôle de ton calendrier car je l'aurais programmé de façon très différente (voir dans les propositions que j'ai faites dans d'autres fils).
 

Pièces jointes

  • Calendrier_V6.xlsm
    52.7 KB · Affichages: 139

camarchepas

XLDnaute Barbatruc
Re : Développement d'un Userform Calendrier sous Excel

Re à tous ,

Oui normal ,
Car il faut renseigner la date d'origine pour le calendrier , je pensais que c'est ce que tu voulais ,

JE viens de modifier pour que par défaut ce soit la date du jour ,

Il faut malgrés tous si tu change la date , mettre une date correcte
 

Pièces jointes

  • Calendrier_user.xlsm
    35 KB · Affichages: 100
  • Calendrier_user.xlsm
    35 KB · Affichages: 130
  • Calendrier_user.xlsm
    35 KB · Affichages: 174

Fred92

XLDnaute Nouveau
Re : Développement d'un Userform Calendrier sous Excel

Re bonjour à tous les deux,

Je tiens à vous remercier l'un et l'autre pour les solutions apportées (qui sont en définitive très proche l'une de l'autre).

J'ai cherché à compliquer le problème alors que la solution est finalement simple (fallait il pour autant la trouver!).

Encore un grand merci ainsi qu'au forum qui est une source de connaissance exceptionnelle.

Bonne fin de journée à tous.

Fred92
 

Discussions similaires

Statistiques des forums

Discussions
313 274
Messages
2 096 750
Membres
106 738
dernier inscrit
Lacbus