XL 2019 Format Date dans Label VBA

mymyetnono

XLDnaute Junior
Bonsoir,

J'ai un tableau qui en faisant un double clic sur une date affiche un formulaire avec un label "DateSelect" qui affiche la date au format "lundi 23 novembre" et un Label "DateSelect_Année" qui affiche la date au format "xx/xx/xxxx".

En cliquant sur le Label "DateSelect" il y a un calendrier qui s'affiche, quand on clic sur une date le format du Label "DateSelect" passe de "lundi 23 novembre" à "xx/xx/xxxx".

Je souhaiterai que le format reste sur le format "lundi 23 novembre" et que l'année correspondante au Label "DateSelect" soit afficher sur Label "DateSelect_Année"

Le Label "DateSelect_Année" portera un nom de feuille et le Label "DateSelect" auras une date correspondante à une ligne dans la feuille ou seront ranger le reste des champs.
 

mymyetnono

XLDnaute Junior
Bonjour cp4
Bonjour ChTi160

VB:
Me.Label1.Caption = Format(Date, "dddd dd mmmm yyyy")
'ou première lettre majuscule
Me.Label1.Caption = Application.Proper(Format(Date, "dddd dd mmmm yyyy"))

Visiblement cela ne fonctionne pas ou je le mets au mauvais endroit.

Voici le tableau.

J'ai essayer de modifier le format dans le code du calendrier (que j'ai eu sur un forum) mais j'y arrive pas.
 

Pièces jointes

  • Heure de Présences VBA V2.xlsm
    292.1 KB · Affichages: 29

cp4

XLDnaute Barbatruc
Bonjour cp4
Bonjour ChTi160



Visiblement cela ne fonctionne pas ou je le mets au mauvais endroit.

Voici le tableau.

J'ai essayer de modifier le format dans le code du calendrier (que j'ai eu sur un forum) mais j'y arrive pas.
Re,

Utiliser l'évènement DateSelect_MouseDown au lieu de DateSelect_Click
VB:
'pour init vos dates au lancement (FACULTATIF)
'sur l'userf demo il y a 6 Labels nommés:
Private Sub UserForm_Initialize()
   DateSelect = Application.Proper(Format(Now, "dddd dd mmmm yyyy"))
End Sub
Private Sub DateSelect_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   fmSTD_Calendrier.SelectDateCTRL DateSelect
   DateSelect = Application.Proper(Format(DateSelect, "dddd dd mmmm yyyy"))
End Sub


'exp appel dates
'Private Sub DateSelect_Click():fmSTD_Calendrier.SelectDateCTRL DateSelect:End Sub

A+
 

mymyetnono

XLDnaute Junior
VB:
'pour init vos dates au lancement (FACULTATIF)
'sur l'userf demo il y a 6 Labels nommés:
Private Sub UserForm_Initialize()
   DateSelect = Application.Proper(Format(Now, "dddd dd mmmm yyyy"))
End Sub
Private Sub DateSelect_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   fmSTD_Calendrier.SelectDateCTRL DateSelect
   DateSelect = Application.Proper(Format(DateSelect, "dddd dd mmmm yyyy"))
End Sub

'exp appel dates
'Private Sub DateSelect_Click():fmSTD_Calendrier.SelectDateCTRL DateSelect:End Sub

Bonjour cp4

Merci pour le code mais je voudrais savoir si il existe un code pour reporter l'année de DateSelect pour le mettre dans DateSelect_Année car avec ce code cela me mets des date de 1905 dans DateSelect_Année sachant que ce Label est exclusiment réserver pour les noms de feuilles (2017, 2018, 2019, 2020,etc...)
 

cp4

XLDnaute Barbatruc
Bonjour,
VB:
Private Sub UserForm_Initialize()
   DateSelect = Application.Proper(Format(Now, "dddd dd mmmm yyyy"))
   Me.DateSelect_Année = Year(Now)
End Sub
Private Sub DateSelect_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   fmSTD_Calendrier.SelectDateCTRL DateSelect
   DateSelect = Application.Proper(Format(DateSelect, "dddd dd mmmm yyyy"))
   Me.DateSelect_Année.Caption = Right(DateSelect, 4) 'autre solution possible
End Sub

A+
 

mymyetnono

XLDnaute Junior
VB:
Private Sub UserForm_Initialize()
   DateSelect = Application.Proper(Format(Now, "dddd dd mmmm yyyy"))
   Me.DateSelect_Année = Year(Now)
End Sub
Private Sub DateSelect_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   fmSTD_Calendrier.SelectDateCTRL DateSelect
   DateSelect = Application.Proper(Format(DateSelect, "dddd dd mmmm yyyy"))
   Me.DateSelect_Année.Caption = Right(DateSelect, 4) 'autre solution possible
End Sub

A+

Merci beaucoup même j'aurais préférer avoir le format de DateSelect "dddd dd mmmm" seulement et l'année sur DateSelect_Année.

Je vais continuer mon tableau comme cela et je verrais cela en dernier.

Il me reste plus qu'à trouver les codes pour rechercher et afficher les informations du jour renseigner dans :

Nom_Entreprise (Label)
Nbrs_Km (Label)
Lieu_Travail (ListBox)

M_Heure_Arrivé (TextBox)
M_Heure_Départ (TextBox)
AP_Heure_Arrivé (TextBox)
AP_Heure_Départ (TextBox)

Je joint mon fichier au cas ou.
 

Pièces jointes

  • Heure de Présences VBA V2.1.xlsm
    289.6 KB · Affichages: 15

cp4

XLDnaute Barbatruc
Merci beaucoup même j'aurais préférer avoir le format de DateSelect "dddd dd mmmm" seulement et l'année sur DateSelect_Année.

Je vais continuer mon tableau comme cela et je verrais cela en dernier.

Il me reste plus qu'à trouver les codes pour rechercher et afficher les informations du jour renseigner dans :

Nom_Entreprise (Label)
Nbrs_Km (Label)
Lieu_Travail (ListBox)

M_Heure_Arrivé (TextBox)
M_Heure_Départ (TextBox)
AP_Heure_Arrivé (TextBox)
AP_Heure_Départ (TextBox)

Je joint mon fichier au cas ou.
un peu d'efforts. En fait, tu es entrain de tâtonner, tu ne sais pas ce que tu veux exactement.
Au final, si tu transferts les données vers une feuille tu auras des surprises.
VB:
Private Sub DateSelect_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Dim MaDate As Date
   fmSTD_Calendrier.SelectDateCTRL DateSelect
   MaDate = DateSelect
   DateSelect = Application.Proper(Format(MaDate, "dddd dd mmmm"))
   Me.DateSelect_Année.Caption = Right(Format(MaDate, "dddd dd mmmm yyyy"), 4)
End Sub
 

mymyetnono

XLDnaute Junior
un peu d'efforts. En fait, tu es entrain de tâtonner, tu ne sais pas ce que tu veux exactement.
Au final, si tu transferts les données vers une feuille tu auras des surprises.

Si je sais ce que je veut mais je me suis peut-être mal exprimer.
Dans mon classeur quand je fait un double clic dans une zone et cela m'ouvre une un formulaire ou il y a la date au format "dddd dd mmmm" dans DateSelect (quand on clic dessus il y a le calendrier qui s'affiche, et avec ton dernier code il y a une erreur VBA quand on le ferme avec la croix) et l'année dans DateSelect_Année.

DateSelect_Année correspond pour les noms de feuille
DateSelect correspond à une ligne

Donc si dans DateSelect il y a "lundi 26 novembre" et dans DateSelect_Année il a "2020" je voudrait que mes données qui sont dans M_Heure_Arrivé (TextBox), M_Heure_Départ (TextBox), AP_Heure_Arrivé (TextBox) et AP_Heure_Départ (TextBox) ainsi que d'autres données soit transferer dans les colonnes qui leurs correspondent dans la feuille "2020" et dans la ligne du "lundi 26 novembre".

J'espère que mes explications de ce que je souhaite sont bien compréhensible.
 

cp4

XLDnaute Barbatruc
Où est le bug avec fermeture par la croix??????????
confusion.gif

Edit: il faudrait compléter tes feuilles pour pouvoir faire des tests. Nul besoin de scinder la date comme tu le fais c'est une source de problème et de complication.

A+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG