XL 2013 insérer date dans formulaire

tititou

XLDnaute Nouveau
bonjour,

Après de longues lectures sur le net, je ne trouve toujours pas de réponse convaincante (je dois être nulle!).

Je suis en train de faire un formulaire sous excel 2013 (32 bits), et j'aimerai pouvoir insérer une date facilement (avec un calendrier).

D'après ce que j'ai vu, l'objet "ms time ..." n'est plus inséré sous excel 2013. J'ai essayé d'intégrer mscal et mscomct2 mais j'ai des messages d'erreurs à chaque essai.

il y a-t-il une solution ? une alternative ?

Merci pour votre réponse.:confused:
 

Si...

XLDnaute Barbatruc
Re : insérer date dans formulaire

Salut Dranreb

C'est idiot ce Label. Déclarez Public K dans l'UserForm, ce sera plus clair pour tout le monde ! Et ça deviendra du coup une propriété de l'UserForm au même titre qu'un contrôle Label mais sans toute sa partie dessinée qui ne sert à rien.

Je sais transmettre la valeur d’une variable déclarée en Public dans un Module Standard,
je sais transmettre la valeur d’un contrôle d’un formulaire dans un contrôle d’un autre formulaire
mais je dois être vraiment idiot, pour ne pas savoir appliquer ta consigne.

Peux-tu me montrer comment le faire avec mon fichier dont le but, je le rappelle, est de récupérer la date du formulaire Quand dans chaque TextBox du formulaire Usf ?

Merci, par avance pour le fichier adapté ainsi qu’aux autres intervenants qui auraient cette nouvelle solution à me proposer.
 

Dranreb

XLDnaute Barbatruc
Re : insérer date dans formulaire

Une variable globale peut aussi se déclarer Public en tête d'un module non standard. Mais contrairement à une variable Public déclarée dans un module standard, elle ne devient pas pour autant connue dans tout le projet, à moins de l'y spécifier précédée du nom de l'objet (de l'UserForm en l'occurrence) suivi d'un point. Tout comme pour un contrôle de cet UserForm en somme. Car ça devient alors une propriété de l'objet. De même qu'une Public Sub en devient par définition une méthode.

Je ne vais donc pas le joindre puisqu'il n'y presque rien à faire :
1) - Supprimer le label K
2) - Ajouter en tête du module Quand: Public K As String
Et ça marche, puisque les autres modules y accèdent bien par Quand.K et non par K tout seul qui ne marcherait pas.

Maintenant avec mon calendrier ce serait plus simple : dans Usf :
VB:
Private Sub D1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  UFmCalend.Coupler "Calendrier", D1
End Sub
Private Sub D2_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  UFmCalend.Coupler "Calendrier", D2
End Sub
Private Sub D3_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  UFmCalend.Coupler "Calendrier", D3
End Sub
Et en plus le calendrier apparait juste en dessous des TextBox, et on pourrait mettre des titres différents, autres que "Calendrier".
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re : insérer date dans formulaire

Re

Merci pour l’information mais entre-temps tu m’as amené vers une autre piste : sans variable K et passage du N° par Caption voire mieux Tag !
VB:
Private Sub D1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  Quand.Tag = 1: Quand.Show
End Sub
Private Sub D2_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  Quand.Tag = 2: Quand.Show
End Sub
Private Sub D3_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  Quand.Tag = 3: Quand.Show
End Sub
ajout : avec
Code:
 Usf.Controls("D" & Quand.Tag) = CDate(Jour.Tag)

Pour les titres et l'emplacement ce n'est pas une grosse programmation.
 
Dernière édition:

tititou

XLDnaute Nouveau
Re : insérer date dans formulaire

bonsoir,

j'ai voulu modifier mon formulaire pour qu'il s'adapte plus à mon besoin de saisie.

Mais, depuis, lorsque je change le mois ou l'année, le calendrier ne se met plus à jour. Pourquoi ? je n'arrive pas à trouver, seule, mon erreur.

MErci de m'éclaircir!! ;-):confused:
 

Pièces jointes

  • date.xlsm
    52.2 KB · Affichages: 51
  • date.xlsm
    52.2 KB · Affichages: 51

Si...

XLDnaute Barbatruc
Re : insérer date dans formulaire

salut

Mais, depuis, lorsque je change le mois ou l'année, le calendrier ne se met plus à jour. Pourquoi ? je n'arrive pas à trouver, seule, mon erreur.
MErci de m'éclaircir!! ;-):confused:

Car tu n'appelles pas la macro de mise à jour !
Vois l'exemple dans lequel j'ai gardé tes appels et complété les macros (mois et année).

Nota : j'ai supprimé des objets inutiles et renommé les boutons des mois (je préfère les noms courts ;))
 

Pièces jointes

  • AutreCalendrier.xlsm
    61.4 KB · Affichages: 59
Dernière édition:

tititou

XLDnaute Nouveau
Re : insérer date dans formulaire

Merci !

Effectivement Lone-wof, ce calendrier est un bel exemple, pas dans mon cas car en fait, le mien est intégré à un formulaire principal mais pour une autre fois !!

SI..., merci pour l'aide. Par contre, avant (que je change ma mise en forme), j'appelai le formulaire "calendrier" en cliquant sur l'une des 4 dates du formulaire mère. Grâce au module de classe, la date se mettait ensuite directement dans la case où j'avais cliqué lorsque je sélectionnai le jour (dans le formulaire calendrier).

En plus, les jours fériés s'indiquaient tout le temps.

Et ce matin.... tout bug!......et je ne trouve pas d'où cela vient. can you help me?
 

Pièces jointes

  • date.xlsm
    57.4 KB · Affichages: 34
  • date.xlsm
    57.4 KB · Affichages: 35

Dranreb

XLDnaute Barbatruc
Re : insérer date dans formulaire

Bonjour.
J'ai réussi à le faire tourner ajoutant Public K As Byte et en remplaçant New Jour par New Classe1.
Je persiste à penser que mon calendrier est bien plus pratique à mettre en œuvre: il ne dépend d'aucun code ou élément Public extérieur à lui à part le code le faisant jouer, avec lequel il communique directement.
Et ce au moyen d'une seule instruction si c'est pour un contrôle d'un UserForm.
Puis je savoir pourquoi vous ne l'adoptez pas, au cas où ce serait un sujet d'amélioration à y apporter ?
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : insérer date dans formulaire

Vous m'avez d'ailleurs fait découvrir un bogue dans le positionnement en essayant de l'implanter dans votre classeur, parce que je n'avais pas pensé que le contrôle à coupler pouvait être contenu dans un Frame.
Alors je le joins, équipé du UFmCalend corrigé.
 

Pièces jointes

  • MonCalenTititou.xlsm
    49.1 KB · Affichages: 33

Si...

XLDnaute Barbatruc
Re : insérer date dans formulaire

re

C’est toujours délicat d’intégrer une réponse dans un contexte évolutif*.

C’est toujours délicat de changer des codes que l’on n’a pas appréhendés !

Vois le fichier joint, si tu veux continuer 1si.

*tu as ajouté un formulaire pour choisir des dates mais qu’en faire ?
Dans le nouveau fichier j’ai intégré une possibilité de transfert sur l’onglet et même ajouté des clauses de validation (on pourrait en ajouter : dates antérieures, ultérieures, congés ...).
 

Pièces jointes

  • CalendrierSi.xlsm
    63 KB · Affichages: 131
Dernière édition:

tititou

XLDnaute Nouveau
Re : insérer date dans formulaire

bonjour,

je suis désolée de vuos embêter encore une fois. Pourquoi la ScrollBar1 est "verrouillée " sur 5 ans?
c'est possible de la mettre sur une échelle de temps infinie?
Merci pour votre réponse.
 

Si...

XLDnaute Barbatruc
Re : insérer date dans formulaire

re

tu n'as pas à être désolée à mon égard :D.

Tu comptes vivre longtemps, longtemps ;)?

Les codes peuvent être corrigés, adaptés par n’importe quel intervenant aguerri même en l’an 2999 si le sujet est toujours d’actualité !

Il suffit de changer la valeur Max de la barre
Année Maximum.jpg

Attention : modification obligatoire, dans UCJour
USaisieDate.Controls("D" & UDate.Image1.Tag) = CDate(UCJour.Tag)
pour éviter, en transfert, la permutation du jour et du mois dans certains cas (04/06/2016 n'est pas 06/04/2016)!