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:

Webperegrino

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

Bonsoir Le Forum, Le Fil,
Bonsoir ChTi160,

C'est excellent !
Ta solution fonctionne.
Il ne me reste plus qu'à l'étudier pour savoir où étaient mes lacunes.

Et enfin, essayer de trouver moi-même la bonne technique pour avoir déjà la date du jour par défaut affichée dans textbox3 (avant tout appel du calendrier).

Merci beaucoup Jean Marie,
Henri
 

Roland_M

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

bonsoir

@ Cathy,


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

la date de fin ne peut être inférieure à la date de début !
c'est une question de logique !
il y a un test qui interdit la saisie d'une date de fin inférieure à cette date de début !

maintenant si dans l'exemple tu mets des valeurs en dur pas très logiques il faut pas s'étonner d'avoir de mauvaises surprises !
si tu veux le reprendre j'ai fais une petite modif pour éviter cela !
(si toutefois j'ai bien compris ton problème !?)

EDIT: mise à jour classeurs ! VOIR POST#24 !
 
Dernière édition:

Si...

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

salut tous

@Webperegrino, dans le module de l'userform1, cela devrait suffire
Code:
Option Explicit
Dim Derli As Integer
Private Sub UserForm_Initialize()
  Derli = Cells(Rows.Count, 3).End(xlUp).Row + 1
  TextBox3 = Date
End Sub
Private Sub Frame1_Click()
  PicDateXLD.StartUpPosition = 2
  PicDateXLD.Show
End Sub
Private Sub CommandButton1_Click() 'bouton Validation
  If TextBox3 = "" Or Not IsNumeric(TextBox4) Then MsgBox ("Entrer une date & un nombre"): Exit Sub
  Cells(Derli, 3) = CDate(TextBox3.Value) 'Date
  Cells(Derli, 4) = CDbl(TextBox4)
End Sub
Private Sub CommandButton3_Click()
  Unload Me
End Sub

A noter que Private Sub UserForm_Initialize1() n'est pas bon !
Si... cela t’intéresse, tu as de nombreuses discussions sur la saisie numérique !
 

C@thy

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

Bonjour à tous,

merci Roland_M,

je me suis mal exprimée, c'est la 2ème date que je mets à date +1, pas la 1ère

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
voici mon essai avec date2 (date de fin) sans les WE, quand je veux modifier la date de fin je n'ai pas le calendrier complet...:eek:

merci à tous pour votre aide, j'adore ce fil!!!

Bises

C@thy
 

Pièces jointes

  • Calendrier Autonome sans les WE.xls
    144.5 KB · Affichages: 103
Dernière édition:

Roland_M

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

bonjour à tous,

c'est bien ce que je dis !
tu as en 1' date 29/05/2012
tu as en 2' date 30/05/2012

donc si tu clic sur date fin le calendrier est programmé
pour t'afficher les jours possible de fin qu'à partir du 29/05/2012 c'est un test de logique !
si tu veux pouvoir cliquer une date avant le 29 il te faut entrer en 1'date une date inférieure au 29 !

je crois que tu n’as pas compris le principe de cette version 2 dates !
tout en étant un même calendrier, dans la version 2 dates avec DateDebut et DateFin,
il y a une programmation qui tient compte de la Date de début lorsque tu clic pour Date de fin
ce n’est pas comme si tu appelais un calendrier pour entrer une date
puis le rappeler pour en entrer une autre indépendamment
et là tu serais obligé de faire des tests toi-même après les saisies pour que l’on entre pas n’importe quoi !
ce qui est fais automatiquement dans celui-ci.

si tu veux avoir le calendrier complet pour début et fin il faut te servir de celui avec une seule date !
et à toi de programmer derrière pour capter les saisies et faire des tests en conséquence !
 

C@thy

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

Ah yes !!! :rolleyes::rolleyes::rolleyes:
le calendrier n'affiche que les dates que l'on peut choisir !!! :eek::eek:
en fait, j'aurais voulu les voir toutes affichées mais qu'il y ait un message d'erreur si on choisit une date2 qui ne va pas bien (inférieure à date1 ou samedi dimanche),
car si je veux choisir le début du mois suivant je suis obligée de choisir le mois suivant dans la liste des mois, même si le 1er jour du mois suivant apparaît bien, mais il est inaccessible...

tu vois mon problème???

mais j'imagine que ce serait difficile à modifier pour afficher tout le calendrier et avoir un message d'erreur si on ne choisit pas une bonne date, en fait ça changerait ta logique...

merci à toi, et excellente journée

Edit : ou bien il faudrait garder le principe mais pouvoir cliquer le début du mois suivant...:eek::eek:
c'est possible ça??? ce serait super génial...

C@thy
 
Dernière édition:

MJ13

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

Bonjour à tous

Sinon, j'avais fait un calendrier pour date de début et de fin sans calendrier :eek:.

Cela en fera un de plus :).
 

Pièces jointes

  • Calendrier_Rapide_Double_Date.xls
    69.5 KB · Affichages: 132

Roland_M

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

re

car si je veux choisir le début du mois suivant je suis obligée de choisir le mois suivant dans la liste des mois, même si le 1er jour du mois suivant apparaît bien, mais il est inaccessible...

décidément ma chère Cathy c'est laborieux !?
il est très pénible d'expliquer tout ces petits détails par écrit !
enfin ... essayons:

tu as un format calendrier avec un alignement sur une semaine (case en haut de Lundi à Dim)
ces cases ne bougent pas de place !
donc les dates jours sont alignés sur ces noms de jours de semaine
si tu as le 1' du mois sélectionné sur la colonne du mercredi
les derniers jours du mois précédent sont affichés exemple sous lundi 29 sous mardi 30
mais il ne sont pas accessible car il ne font pas parti du mois sélectionné !
y compris d'ailleur ceux qui suivent ce mois à la fin du mois sélectionné !
TOUT CECI EST UNE QUESTION DE LOGIQUE !
tout le monde aura compris que ce sont les jours du mois précédent et suivant de celui sélectionné
et que si l'on veut avoir accès à ces jours il passé au mois précédent ou suivant !

mais toi tu voudrais un calendrier selon ta propre logique !
c'est tout à fait possible mais il faut s'y mettre !
il n'y a pas de fichier sur mesure à la logique de chacun !
on trouve un exemple et on l'adapte à ses besoins.
comprends tu ?!

Maintenant, on peut modifier le calendrier pour tes besoins perso exp:
- ne pas faire apparaître ces jours qui te perturbent.
- on peut rendre inactif les samedis, dimanches et fériés.
- mais ça me parait ridicule de laisser choisir une date de fin avant le début et d'afficher un message d'erreur !
ça me parait plus intelligent de le faire automatiquement par programmation
c'est le propre de tout logiciel bien pensé qui doit être, tant que faire ce peut, intuitif et sécurisé !
 

Carnage029

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

Ayant suivi un peu le sujet, je me permet de poster ici, dites moi si c'est déplacé ou si ça ne se fait pas surtout...

J'ai un user form (joint à ce message) ou il est possible d'entrer deux dates (mais pas au format habituel, il faut juste mettre jjmmaa)

Je voulais savoir, est t'il possible d'insérer le calendrier de manière à avoir la date sous le format souhaité ? (jjmmaa) en allant la chercher "à la main" ou en l'écrivant...

J'ai un autre petit soucis, le maxlenght ne marche pas, je peux mettre autant de caractères que je veux dans chaque case...

Merci à vous, en ayant parcouru les macros de chacun, je dois dire que le niveau ici est très élevé (en tout cas nettement supérieur au mien :) )
 

Pièces jointes

  • monuserform.zip
    1.4 KB · Affichages: 58

ChTi160

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

Bonjour C@thy content de te croiser
Bonjour les éminents participants à ce post
bonjour le Forum

Cette intervention pour répondre à la demande pouvoir utiliser toutes les dates affichées
voila ce que j'ai modifié
Code:
For n = 1 To 38
        With Controls("CommandButton" & n)
            .Caption = Format(l + n - 1, "d")
            .BackColor = IIf(Weekday(l + n - 1, vbMonday) > 5, vbRed, &HFFFFFF) '&H78C1F6     '&H00599A5F& '&H8000000F
            ' ****** hors période
            If Format(l + n - 1, "mmmm") <> TB_Mois Then
                      'ici j'ai supprimé le .Enabled=False
                .Font.Bold = False
                .BackColor = vbYellow 'ici j'ai modifié la couleur de ces dates hors mois en cours
            Else

Bonne fin de Journée
Amicalement
Jean Marie
 

Webperegrino

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

Bonjour Le Forum, Le Fil,
Bonjour SI...
Ta réponse #49 est aussi très intéressante. Elle fonctionne parfaitement dans mon application où TextBox4 est aussi pris en compte dans la ligne suivante de "Private Sub CommandButton1_Click() 'bouton Validation" :
If TextBox3 = "" Or Not IsNumeric(TextBox4) Then MsgBox ("Entrer une date & un nombre"): Exit Sub
Merci à toi aussi pour ton aide.
Bonne soirée à vous tous,
Webperegrino
 

Roland_M

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

bonjour,

@ C@thy

celui-ci ne contient que le calendrier avec les deux dates Début et Fin
il y a toujours les tests logiques en rapport à ces deux dates.

seuls les jours du mois sélectionné sont affichés

en sortie il y a les tests sur les dates saisies:
si on sélectionne un jour férié ou un samedi ou un dimanche
il y aura une demande de confirmation pour Début et ou Fin

à tester car j'ai pas eu trop le temps et me dire si ok !?
 

Pièces jointes

  • Calendrier AutoCathy.xls
    112 KB · Affichages: 112
  • Calendrier AutoCathy.xls
    112 KB · Affichages: 109
  • Calendrier AutoCathy.xls
    112 KB · Affichages: 125

Discussions similaires

Réponses
1
Affichages
105