créer un calendrier dans un UserForm

C@thy

XLDnaute Barbatruc
Bonjour le forum,

Je voudrais créer un calendrier selon le modèle ci-joint, (mais avec les jours de la semaine en haut, en colonnes,
les flèches pour changer de mois en haut et d'année en bas)
mais dans un USF

Comment puis-je créer les flèches pour changer de mois et d'année, et initialiser les valeurs???
(j'ai essayé avec une scrollbar ou un spinbutton, mais je ne sais pas comment afficher le mois en cours, l'année en cours et faire la navigation sur d'autres mois ou années:confused:)

Merci à vous, si vous avez des idées sur la question ou un exemple à me fournir.

Edit : j'ai mis 2010 car il doit être compatible 2010, mais en réalité, pour l'instant je n'ai que 2003!!

Bises et bonne journée,

C@thy
 

Pièces jointes

  • AffichePetitCalendrier.xls
    41 KB · Affichages: 1 118
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Bonsour®
Bonjour à tous

Sympas tous ces calendriers :).

Mais Modeste sur ton dernier zip avec le Userform, il doit manquer le .Frx :eek:.

?? pour ma culture personnelle, a quoi sert le .frx en VBA ???
dans mes essais je ne m'en suis point occupé ...
 

Pièces jointes

  • PicDateXLD (3).zip
    5.7 KB · Affichages: 92
  • PicDateXLD (3).zip
    5.7 KB · Affichages: 111
  • PicDateXLD (3).zip
    5.7 KB · Affichages: 115

Si...

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

salut tous

Si... je ne me trompe, quand on exporte un Userform, 2 fichiers sont crées. Le .frx contient les définitions et propriétés des contrôles de l'Usf, le .frm contient les macros écrites dans l'Usf.
Quand on importe le .frm, l'autre est automatiquement importé donc ne doit pas faire défaut.
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Re

Me voila rassuré quant à ma compétence à propos de l'importation d'un USF
Et uniquement pour apporter une toute petite touche: tester le PicDateXLD1 (il met la cellule au format date)
 

Pièces jointes

  • PicDateXLD (3).zip
    17.3 KB · Affichages: 129
  • PicDateXLD (3).zip
    17.3 KB · Affichages: 136
  • PicDateXLD (3).zip
    17.3 KB · Affichages: 145

Modeste geedee

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Bonsour® Si...
merci de ton intervention
salut tous

Si... je ne me trompe, quand on exporte un Userform, 2 fichiers sont crées. Le .frx contient les définitions et propriétés des contrôles de l'Usf, le .frm contient les macros écrites dans l'Usf.
Quand on importe le .frm, l'autre est automatiquement importé donc ne doit pas faire défaut.

? un peu plus d'éclaircissement STP..
encore faut-il que le .frx soit livré, ce qui pourrait expliquer que ayant fait mes essais sur une seule machine Excel se débrouille pour localiser celui-ci...
ce qui ne serait pas le cas lorsque le .frm est distribué seul ... OUI /non ???

ou doit etre déposé le .frx ????

?? relation avec ceci dans .frm (GUId ???)
s'agit-il d'une inscription automatique dans la base de registre ???
VERSION 5.00
Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} PicDateXLD
Caption = "PicDate XLD"
ClientHeight = 3735
ClientLeft = 45
ClientTop = 435
ClientWidth = 5535
OleObjectBlob = "PicDateXLD.frx":0000
ShowModal = 0 'False
WhatsThisButton = -1 'True
WhatsThisHelp = -1 'True
End
 

Si...

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

re

Une tentative d'explication résultant de mes manipulations.

C'est le CLSID {C62A69F0-16DC-11CE-9E98-00AA00574A4F}* qui permet de contrôler les objets sans qu'il y ait une inscription dans la base de registre de l'objet lors de sa création.

Quand tu as ton fichier ouvert avec l'Usf "PicDateXLD", une recherche dans la base de registre (RegEdit), de ce mot ne donnera aucun résultat.

Exporte ton Usf. Les 2 fichiers sont crées.
Renomme ou déplace le .frx (celui qui contient la structure avec les contrôles utilisés).
Supprime dans l'éditeur ton Usf.
Essaie d'importer le .frm (proposition faite Fichiers de type : Fichier VB *.frm; *.bas; *.cls ) !

Même machine ou pas le résultat sera le même : un constat d'échec !

Voilà pourquoi je ne comprends pas cela
encore faut-il que le .frx soit livré, ce qui pourrait expliquer que ayant fait mes essais sur une seule machine Excel se débrouille pour localiser celui-ci... :confused:

Pour une importation, le .frx correspondant au .frm doit être présent dans le même répertoire !

* Fais une recherche dans ta base de registre avec ce texte. Même si Excel n'est pas ouvert, tu auras des renseignements et les exploiter sera une autre paire de manches !
 

Modeste geedee

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Bonsour® Si...
re

Une tentative d'explication résultant de mes manipulations.

C'est le CLSID {C62A69F0-16DC-11CE-9E98-00AA00574A4F}* qui permet de contrôler les objets sans qu'il y ait une inscription dans la base de registre de l'objet lors de sa création.

../..
Pour une importation, le .frx correspondant au .frm doit être présent dans le même répertoire !

Ceci explique donc la réponse de PierreJean (je n'avais mis à disposition que le .frm)
ainsi que mes essais à partir d'un classeur vierge, import du seul .frm(mais sans changer de répertoire de travail)

Merci donc...

cette explication bien que succinte me suffira à l'avenir pour partager mes bidouilles...:cool:
moins contraignante que la création d'un add-in ???
 

C@thy

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Arf! Mince zut flute...
J'ai voulu modifier un peu le code de l'usf de façon à ne pas choisir une date qui serait un samedi ou un dimanche et de façon à ce que la 2ème date soit initialisé à date1 +1 sans compter les samedi dimanche
L'initialisation de la date1 avec Date est toujours bonne car quand on ouvre l'usf on n'est jamais un WE vu qu'on travaille
Je précise qu'on travaille les jours fériés (il y a une permanence) mais jamais le WE

Bref en modifiant le code de la 2ème date pour qu'elle s'initialise à j+1 corrigé des WE je n'affiche plus qu'une ligne de boutons sur les 48 du calendrier... Quand j'enlève mon test ça remarche...

Avez-vous une idée pour modifier le code de façon à :
lors de l'initialisation de l'usf la 2ème date soit date +1 corrigée des samedi dimanche
et lors du choix d'une autre date en date1 et date2 on ne puisse pas choisir un samedi dimanche,
...sans casser le beau calendrier...

Je ne peux pas joindre de fichier car en WE je n'ai internet que sur mon phone

Merci à vous

Bizz

C@thy
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Bonsour®
Arf! Mince zut flute...
J'ai voulu modifier un peu le code de l'usf de façon à ne pas choisir une date qui serait un samedi ou un dimanche et de façon à ce que la 2ème date soit initialisé à date1 +1 sans compter les samedi dimanche
L'initialisation de la date1 avec Date est toujours bonne car quand on ouvre l'usf on n'est jamais un WE vu qu'on travaille
Je précise qu'on travaille les jours fériés (il y a une permanence) mais jamais le WE

Bref en modifiant le code de la 2ème date pour qu'elle s'initialise à j+1 corrigé des WE je n'affiche plus qu'une ligne de boutons sur les 48 du calendrier... Quand j'enlève mon test ça remarche...

Avez-vous une idée pour modifier le code de façon à :
lors de l'initialisation de l'usf la 2ème date soit date +1 corrigée des samedi dimanche
et lors du choix d'une autre date en date1 et date2 on ne puisse pas choisir un samedi dimanche,
...sans casser le beau calendrier...

tu ne précises pas quelle source tu utilises ...

s'il s'agit du Picdate que j'ai adapté du programme de PierreJean... ?
dans la procédure Affiche (module Userform PICdate)
alors modifier la partie :
../..
' ****** hors période
If Format(Decal + Idx - 1, "mmmm") <> TB_Mois _
Or Weekday(Decal + Idx - 1, vbMonday) >= 6 Then
.Enabled = False
.Font.Bold = False
.BackColor = vbWhite
Else '
../..

Regarde la pièce jointe 852341
 

Pièces jointes

  • picDateXLD v3.jpg
    picDateXLD v3.jpg
    61 KB · Affichages: 279
Dernière édition:

C@thy

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

J'utilise le calendrier autonome de Roland_M celui qui a 42 boutons date + 6 boutons semaine

Bises et un grand MERCI

Édit : merci pour ta soluce sur le picdate

C@thy
 
Dernière édition:

C@thy

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Dans le module exemple si je mets la date de début à = Date
ça marche mais si je mets CalendrierDatefinSELECT = Date + 1
lorsque je clique dans l'USF fm_Saisie2Dates sur la 2ème date pour la changer je l'affiche qu'un petit bout du calendrier
je ne parle même pas d'utiliser une formule avec weekday!!

Damned !!!

Bises et merci pour votre aide, je ne comprends pas pourquoi

Bises

C@thy
 
Dernière édition:

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : créer un calendrier dans un UserForm

Bonjour,

J'ai voulu expérimenter le fichier récupéré dans la réponse de Modest Geedee 25/0/212 14h21 #28.
Il est très utile. Merci à son créateur.

Mais, pour faire apparaître le calendrier PICDATE _XLD de deux façons dans le fichier ci-annexé, j’en appelle à votre expérience. Mes tentatives échouent.

Objectif :
J'aimerai qu'un bon transfert de date choisie dans PICDATE _XLD soit fait lors de l’utilisation du bouton vert ajouté en feuille BDD.

Un premier userform de saisie apparaît, et un double-clic sur le textbox3 (date) propose le calendrier est PICDATE _XLD.

1 - A l’ouverture de l'UserForm de saisie je n'arrive pas à placer la date du jour par défaut dans textbox3.

2 - Ensuite la date choisie dans le calendrier ne s’y inscrit ensuite pas.

3 - Enfin, au moment de la validation de l'userform de saisie, le transfert de cette date (en textbox3) ne se fait pas correctement en feuille BDD en colonne C.

Pour perfectionnement éventuel de votre beau calendrier :
J’ai aussi constaté qu’aujourd’hui, 28 mai étant férié, la case du 28 ne passe toutefois pas en vert (date du jour) mais reste en magenta.
J’ai donc placé une TextBox d’information du jour en bas d’UserForm, puisque je ne trouve pas la parade nécessaire pour que la couleur verte puisse devenir prioritaire en cas de bouton magenta-férié. Quelqu'un a peut-être une idée.

Meric à vous.
Bonne soirée.
Webperegrino
 

Pièces jointes

  • CALENDRIERuserform_PicDate_XLD (version UserF).xls
    155.5 KB · Affichages: 197

Discussions similaires

Réponses
9
Affichages
398
Réponses
1
Affichages
136

Statistiques des forums

Discussions
312 196
Messages
2 086 098
Membres
103 116
dernier inscrit
kutobi87