XL Calendar dans TextBox d'un Userform
#1
Débutant XLPages

Inscription: 06/04/2011

Messages: 4

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 06-04-2011 23h01
Bonsoir,
J'utilise depuis peu mDF Xlcalendar v1.1 dans deux TextBox d'un Userform avec Excel 2003 et Excel 2007 et c'est Génial.
Ma prémière TextBox est pour indiquer la date du début de période de congé et la seconde la fin de la période de congé qui peuvent être le même jour (1journée).
Pour celà j'utilise la macro fournie et c'est ok:
Private Sub PériodeF_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Cancel = True
    mDFXLcalShow CalCtrl:=PériodeD, CalFormat:="dd/mm/yyyy", CalLang:="FR"

Ma question est de savoir si on peu ajouter d'autre commandes dans la macro afin d'avoir toutes les options de XLcalendar lors de son appel en cliquant dans la TextBox (ex: rappel du dernier mois).

Par ailleurs, lorsque je choisi une date de début dans ma première TextBox j'aimerai que dans la TextBox de fin de période XLcalendar puisse se positioner sur le dernier mois saisis et mieux encore le dernier jour saisi . Le summum serait même en plus que XLcalendar se lance seul dans la 2ème TextBox à partir du moment ou la date de début est choisie dans la première TextBox.

Bon ok c'est pas très clair mon histoire ;-(

Merci à tous pour votre lecture

Hors Ligne
Rapport   Haut 

Re: XL Calendar dans TextBox d'un Userform
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 06-04-2011 23h58
Bonsoir Philmfr, bienvenue sur XLpages.com
Bonsoir le Forum,

Tu trouveras en pièce jointe peut-être une façon d'obtenir l'effet souhaité ou, au moins, une piste à creuser.

J'ai pris pour base la FAQ expliquant l'utilisation du mDF XLcalendar dans un Userform, puis repris le classeur exemple donné auquel j'ai ajouté 2 contrôles TextBox dont le code évènementiel est le suivant :

Option Explicit
'**************************************************************************
'Pour période début et fin
'**************************************************************************
'Il est préférable de mettre la propriété "Locked" à True sur le premier TextBox (Date Début)
'afin d'empêcher l'utilisateur de saisir manuellement dans la zone et perturber
'l'effet "Change()" ci-dessous...

Private Sub txtPeriodeDEB_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    'Ouvre le calendrier
    Cancel = True
    mDFXLcalShow CalCtrl:=txtPeriodeDEB, CalFormat:="dd/mm/yyyy", CalLang:="FR"
End Sub

Private Sub txtPeriodeDEB_Change()
    'Ferme le calendrier et le réouvre automatiquement pour la date de FIN (par défaut, à la même date)
    With txtPeriodeFIN
        If .Text = "" Then .Text = txtPeriodeDEB.Text
        .SetFocus
        mDFXLcalHide
        mDFXLcalShow CalCtrl:=txtPeriodeFIN, CalFormat:="dd/mm/yyyy", CalLang:="FR"
    End With
End Sub

Private Sub txtPeriodeFIN_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    'Ouvre le calendrier
    Cancel = True
    mDFXLcalShow CalCtrl:=txtPeriodeFIN, CalFormat:="dd/mm/yyyy", CalLang:="FR"
End Sub

Voir dans l'exemple joint l'effet obtenu qui devrait répondre à ton besoin je pense...
Cordialement,

Pièce jointe:
zip Test mDF XLcalendar USF 2.zip   [ Taille: 15.14 Ko - Téléchargements: 1284 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: XL Calendar dans TextBox d'un Userform
#3
Débutant XLPages

Inscription: 06/04/2011

Messages: 4

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 07-04-2011 01h02
Bonjour,
C'est génial, ça marche exactement comme je le voulais
Mais la commande sur la T2 me pose maintenant un bug ailleus.
Je vais chercher par moi même demain après dodo et je reviens vous voir.
Déjà merci et à demain.
Philippe
Hors Ligne
Rapport   Haut 

Re: XL Calendar dans TextBox d'un Userform
#4
Débutant XLPages

Inscription: 06/04/2011

Messages: 4

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 07-04-2011 06h30
Bonjour,
Alors voilà quand je lance ma commande de néttoyage de mon Userform, il néttoie/vide bien tout sauf qu'il lance XlCalendar en Textbox "PériodeF"

Private Sub Annuler_Click()
'vérifie que le classeur Bertille est le classeur actif
'sinon l'initialisation échoue
Workbooks("Bertille.xls").Activate
'Vide les Combobox, vide les éléments de texte...
    agents = ""
    annule = ""
    PériodeD = ""
    PériodeF = ""
    gpa = ""
    commentaire = ""
    'positionne sur "Faux" les cases à cocher
    matin = False
    aprèsmidi = False
    journée = False
    urgence = False
   
End Sub

Je pense que cela est normal car dans ce que tu as (très bien fait),
Private Sub PériodeD_Change()
    'Ferme le calendrier et le réouvre automatiquement pour la date de FIN (par défaut, à la même date)
    With PériodeF
        If .Text = "" Then .Text = PériodeD.Text
etc....

Comment puis je éviter celà? changer ma méthode de néttoyage? y ajouter la fermeture de XLcalendar?
Bien merci,
Philippe
Hors Ligne
Rapport   Haut 

Re: XL Calendar dans TextBox d'un Userform
#5
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 07-04-2011 22h48
Bonsoir Philmfr,

Cher Philippe, j'ai comme l'impression que tu devrais prendre un peu de recul par rapport à ton projet car il me semble que la solution à ton nouveau problème était quand même à ta portée... (ou alors, il y a d'autres surprises non encore annoncées...)

Plusieurs solutions peuvent être possibles ici, mais la plus simple je pense, est de modifier la procédure txtPeriodeDEB_Change() comme suit :
Private Sub txtPeriodeDEB_Change()
    If txtPeriodeDEB.Text <> "" Then
        'Ferme le calendrier et le réouvre automatiquement pour la date de FIN (par défaut, à la même date)
        With txtPeriodeFIN
            If .Text = "" Then .Text = txtPeriodeDEB.Text
            .SetFocus
            mDFXLcalHide
            mDFXLcalShow CalCtrl:=txtPeriodeFIN, CalFormat:="dd/mm/yyyy", CalLang:="FR"
        End With
    End If
End Sub
... un simple IF ... THEN et on contourne le soucis.

Voir l'effet obtenu dans l'exemple joint.

Si cela répond à ta question, je te remercie de mettre en pratique ce qui est inscrit au bas de ma signature.

Cordialement,



Pièce jointe:
zip mDF XLcalendar USF v2.zip   [ Taille: 15.54 Ko - Téléchargements: 904 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: XL Calendar dans TextBox d'un Userform
#6
Débutant XLPages

Inscription: 06/04/2011

Messages: 4

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 07-04-2011 23h29
Bonsoir,
En effet, c'était évident mais je ne cherchais pas de ce côté
Je ne reste qu'un amateur.
Encore bien merci pour cette réussite.
Philippe
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes