IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

VBA Word - Calendar associé à une textbox


Sujet :

VBA Word

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut VBA Word - Calendar associé à une textbox
    Bonjour à tous

    Pour un document Word
    J'ai un problème avec une UserForm nommée frmUserForm1 avec une textbox nommée txtdate_effrac, un bouton de commande nommé cmdRéférence et un Calendar nommé caleffrac

    A ce bouton de commande, en cliquant, je souhaite l'ouverture d'un Calendar.
    Une fois le Calendar ouvert, en double cliquant sur une date, je souhaite qu'il agrémente la date dans la dite textbox et qu'il ne s'affiche plus. Mais qu'il puisse revenir si je reclique sur le bouton de commande bien sûr.

    Je n'arrive pas à les associer, et à généré les codes pour que ça fonctionne ...

    Si vous avez moyen de m'aider ... grand merci d'avance

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    Un mécanisme aussi simple à établir ne peut que faire l'objet de son exposé (le code étant, lui, élémentaire)

    - A la création : propriété Visible de ton Calendar = False
    - Au click sur ton bouton de Commande ===>> propriété Visible de ton Calendar = True
    - au click sur ton Calendar :
    ===>> tu donnes à ta textbox la valeur de ton Calendar (propriété Value)
    ===>> tu repasses à False la propriété Visible de ton Calendar.

    On peut maintenant se demander pourquoi utiliser un bouton de commande, alors que tu l'on pourrait utiliser directement l'évènement Click de la TextBox...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour,

    Un mécanisme aussi simple à établir ne peut que faire l'objet de son exposé (le code étant, lui, élémentaire)

    - A la création : propriété Visible de ton Calendar = False
    - Au click sur ton bouton de Commande ===>> propriété Visible de ton Calendar = True
    - au click sur ton Calendar :
    ===>> tu donnes à ta textbox la valeur de ton Calendar (propriété Value)
    ===>> tu repasses à False la propriété Visible de ton Calendar.

    On peut maintenant se demander pourquoi utiliser un bouton de commande, alors que tu l'on pourrait utiliser directement l'évènement Click de la TextBox...
    Merci pour ta réponse, mais étant très novice dans ce domaine, ta réponse ne m'aide pas complètement ...

    J'arrive à configurer la valeur du calendar pour la textbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub txtdate_effrac_Click()
    txtdate_effrac.Value = caleffrac.Value
    End Sub
    La propriété Visible du calendar = False ça c'est bon.
    Je ne sais pas comment configurer la propriété Visible de mon Calendar = True quand on clique sur le bouton de commande
    Je ne sais pas non plus comment configurer le retour à False la propriété du Calendar une fois qu'on a cliquer sur le Calendar

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    Si tu veux modifier la propriété visible de ton Contrôle calendrier, il suffit de la remettre à True

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Me.Calendar1.Visible = True
    Me.Repaint
    Et il faut réactualiser le UserForm pour l'afficher.

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    - au click sur ton Calendar :
    ===>> tu donnes à ta textbox la valeur de ton Calendar (propriété Value)
    ===>> tu repasses à False la propriété Visible de ton Calendar.
    et tu as écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub txtdate_effrac_Click()
      txtdate_effrac.Value = caleffrac.Value
    End Sub
    Tu crois que tu as utilisé l'évènement click qui convient ?
    Il me semble que tu as fait le contraire...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Salut,

    Si tu veux modifier la propriété visible de ton Contrôle calendrier, il suffit de la remettre à True

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Me.Calendar1.Visible = True
    Me.Repaint
    Et il faut réactualiser le UserForm pour l'afficher.
    Merci à toi aussi pour ta réponse ... mais parce qu'il y en a toujours un de mais ... enfin là même plusieurs ...

    Pour la propriété visible du calendrier c'est bon ... il s'affiche quand je clique sur le bouton de commande ... et la textbox s'agrémente bien avec la date ... sauf qu'en cliquant sur le calendrier, il reste toujours ouvert ...

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Bien sur, il faut le cacher après son utilisation !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Calendar1_Click()
     
    Me.Calendar1.Visible = False
     
    Me.Repaint
    End Sub

  8. #8
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    bonjour,

    tu peu nous montrer où tu en est de ton code ?

  9. #9
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Ajoute donc, dans l'évènement click de ton calendrier (et après avoir passé sa valeur à ta texbox) que tu ne veux plus le voir ....

    - au click sur ton Calendar :
    ===>> tu donnes à ta textbox la valeur de ton Calendar (propriété Value)
    ===>> tu repasses à False la propriété Visible de ton Calendar.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    et tu as écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub txtdate_effrac_Click()
      txtdate_effrac.Value = caleffrac.Value
    End Sub
    Tu crois que tu as utilisé l'évènement click qui convient ?
    Il me semble que tu as fait le contraire...
    Oui autant pour moi ... erreur de script ... j'ai changé c'est l'évènement Change ... donc ça c'est bon ...

    Donc là tout fonctionne sauf le fait que le calendar doive se fermer quand on clique sur une date ... donc faire revenir la propriété Visible à False

    **************************************************

    C'est bon Messieurs, tout fonctionne nickel ...

    Encore un grand merci à vous ...

    Eu besoin plusieures fois et jamais déçu

    Encore merci

  11. #11
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    C'est à despérer ....
    Ce n'est pas la nature de l'évènement, qui est concernée, mais l'objet auquel tu l'appliques ! (c'est l'évènement click de ton calendrier, qu'il faut utiliser, pas celui de ta textbox ....)

    Bon...
    Regarde maintenant comment te débarrasser de ce bouton de commande .
    Philosophie : si l'utilisateur clique sur la textbox, c'est qu'il a l'intention de la modifier.===>> on affiche le calendrier ===>> l'utilisateur y choisit sa date ===>> s'il double-clique (ton voeu) ===>> on met à jour la textbox et on rend invisible le calendrier. On le rend également invisible si l'utilisateur abandonne le calendrier et se rend dans un autre contrôle que la textbox de date.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub caleffrac_DblClick()
      txtdate_effrac.Text = caleffrac.Value
      caleffrac.Visible = False
      Me.Repaint
    End Sub
     
    Private Sub txtdate_effrac_Click()
     caleffrac.Visible = True
     Me.Repaint
    End Sub
     
    Private Sub caleffrac_LostFocus()
      caleffrac.Visible = False
      Me.Repaint
    End Sub
    et on supprime le bouton de commande.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut
    Je vais voir pour copier le fichier et vérifier la meilleure utilisation

    Encore merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/11/2008, 16h47
  2. code SQL associé à une TextBox
    Par ac264 dans le forum IHM
    Réponses: 2
    Dernier message: 01/10/2007, 13h55
  3. Réponses: 1
    Dernier message: 29/03/2007, 09h46
  4. [VBA-E]Entrée dans une textbox
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/12/2006, 17h54
  5. Réponses: 4
    Dernier message: 11/07/2006, 10h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo