Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Format date

7 réponses
Avatar
Brat'ac
Bonjour,

A l'aide d'un calendrier je rentre une date dans un label formaté comme
ceci

Label38.Caption = Format(UFmCalend.Saisie, "dd/mm/yyyy")

Ensuite cette date est enregistrée sur une feuille o͹ les cellules sont
au même format

Mais pour certaines dates j'ai une inversion entre le mois et le jour
(09/08/2022 au lieu de 08/09/2022)
pas dans le label juste sur la feuille

Par exemple pour le mois de septembre du 1 aux 12 c'est inversé ensuite
du 13 aux 30 c'est bon

Une idée du pourquoi
Merci

7 réponses

Avatar
Michel__D
Le 02/09/2022 Í  18:34, Brat'ac a écrit :
Bonjour,
A l'aide d'un calendrier je rentre une date dans un label formaté comme ceci
Label38.Caption = Format(UFmCalend.Saisie, "dd/mm/yyyy")

Donc du texte.
Ensuite cette date est enregistrée sur une feuille o͹ les cellules sont au même
format

Comment ce texte est enregistrée sur la feuille ?
Mais pour certaines dates j'ai une inversion entre le mois et le jour
(09/08/2022 au lieu de 08/09/2022)
pas dans le label juste sur la feuille
Par exemple pour le mois de septembre du 1 aux 12 c'est inversé ensuite du 13
aux 30 c'est bon
Une idée du pourquoi
Merci
Avatar
Brat'ac
Brat'ac a couché sur son écran :
Bonjour,
A l'aide d'un calendrier je rentre une date dans un label formaté comme ceci
Label38.Caption = Format(UFmCalend.Saisie, "dd/mm/yyyy")
Ensuite cette date est enregistrée sur une feuille o͹ les cellules sont au
même format
Mais pour certaines dates j'ai une inversion entre le mois et le jour
(09/08/2022 au lieu de 08/09/2022)
pas dans le label juste sur la feuille
Par exemple pour le mois de septembre du 1 aux 12 c'est inversé ensuite du 13
aux 30 c'est bon
Une idée du pourquoi
Merci

Avec comme format ceci Label38.Caption = Format(UFmCalend.Saisie, "dd
mmm yy")
et dans les cellules un format complet "lundi 10 septembre 2020" plus
de PB
Avatar
MichD
Le 02/09/22 Í  12:34, Brat'ac a écrit :
Bonjour,
A l'aide d'un calendrier je rentre une date dans un label formaté comme
ceci
Label38.Caption = Format(UFmCalend.Saisie, "dd/mm/yyyy")
Ensuite cette date est enregistrée sur une feuille o͹ les cellules sont
au même format
Mais pour certaines dates j'ai une inversion entre le mois et le jour
(09/08/2022 au lieu de 08/09/2022)
pas dans le label juste sur la feuille
Par exemple pour le mois de septembre du 1 aux 12 c'est inversé ensuite
du 13 aux 30 c'est bon
Une idée du pourquoi
Merci

Bonjour,
Il y a différentes manières de procéder.
Tu peux utiliser la fonction de conversion CDate(). Attention, cette
fonction utilise le format date du panneau de configuration de Windows.
En supposant que ce format est le même que celui de ton "Label", utilise
ceci :
Label38.Caption = Format(Cdate(UFmCalend.Saisie), "dd/mm/yyyy")
OU
Dim D As String, Jour As Long
Dim mois As Long, Année As Long
Dim x As Date
D = UFmCalend.Saisie
Jour = Left(D, 2)
mois = Mid(D, 4, 2)
Année = Right(D, 2)
Label38.Caption = Format(DateSerial(Jour, mois, Année),"DD/MM/YYYY")
MichD
Avatar
MichD
Le 02/09/22 Í  13:59, MichD a écrit :
Le 02/09/22 Í  12:34, Brat'ac a écrit :
Bonjour,
A l'aide d'un calendrier je rentre une date dans un label formaté
comme ceci
Label38.Caption = Format(UFmCalend.Saisie, "dd/mm/yyyy")
Ensuite cette date est enregistrée sur une feuille o͹ les cellules
sont au même format
Mais pour certaines dates j'ai une inversion entre le mois et le jour
(09/08/2022 au lieu de 08/09/2022)
pas dans le label juste sur la feuille
Par exemple pour le mois de septembre du 1 aux 12 c'est inversé
ensuite du 13 aux 30 c'est bon
Une idée du pourquoi
Merci

Bonjour,
Il y a différentes manières de procéder.
Tu peux utiliser la fonction de conversion CDate(). Attention, cette
fonction utilise le format date du panneau de configuration de Windows.
En supposant que ce format est le même que celui de ton "Label", utilise
ceci :
 Label38.Caption = Format(Cdate(UFmCalend.Saisie), "dd/mm/yyyy")
OU
Dim D As String, Jour As Long
Dim  mois As Long, Année As Long
Dim x As Date
D = UFmCalend.Saisie
Jour = Left(D, 2)
mois = Mid(D, 4, 2)
Année = Right(D, 2)
Label38.Caption = Format(DateSerial(Jour, mois, Année),"DD/MM/YYYY")
MichD

En complément, pour envoyer le contenu (date) du "Label38.Caption" vers
une cellule d'une feuille de calcul, tu dois utiliser une des 2 méthodes
mentionnées ci-haut.
la fonction de conversion Cdate() ou DateSerial()
MichD
Avatar
Geo
De MichD, le 02/09/2022 :
Label38.Caption = Format(DateSerial(Jour, mois, Année),"DD/MM/YYYY")

Un vieux souvenir, pas testé, la fonction Format est sensible aux
majuscules / minuscules.
Il me semble que "mm" donne le mois et "MM" les minutes.
Ou l'inverse ?
De quoi s'arracher les cheveux.
Avatar
MichD
Le 02/09/22 Í  16:06, Geo a écrit :
De MichD, le 02/09/2022 :
Label38.Caption = Format(DateSerial(Jour, mois, Année),"DD/MM/YYYY")

Un vieux souvenir, pas testé, la fonction Format est sensible aux
majuscules / minuscules.
Il me semble que "mm" donne le mois et "MM" les minutes.
Ou l'inverse ?
De quoi s'arracher les cheveux.

Bonjour Geo,
Si je peux me permettre...une petite explication.
Soit la date suivante 03/06/2022 dans un textbox ou un label (étiquette)
Ces 2 types de contrʹles retournent non pas une date, mais une chaͮne de
caractères.
Si je ne te donne pas le format de la date que moi j'utilise, la date
suivante pourrait être interprétée comme :
03/06/2022 au format français, le 3 juin 2022 format DD/MM/YYYY
OU
03/06/2022 au format américain, le 6 mars 2022 format MM/DD/YYYY
Lorsqu'Excel s'aperçoit que la chaine de caractère peut être une date,
Excel applique, par défaut, le format américain. Dans certains cas, il
devine correctement par exemple : 15/03/2022 . Excel reconnaͮt que c'est
une date, mais le format américain ne peut pas s'appliquer parce qu'il
n'y a pas un mois correspondant Í  15 (MM/DD/YYYY)
Afin d'éviter une méprise, on doit utiliser une fonction de conversion,
Cformat(), DateSerial() comme dans mon exemple.
IL y a aussi cette fonction
dim X as Date
x = DateValue("2002/06/02") un seul format peut être utilisé :
YYYY/MM/DD au moment de la saisie. "2002/06/02" est une chaͮne de
caractères. La variable X va être au format "Date courte" du panneau de
configuration de Windows. On peut alors utiliser la méthode "Format()"
pour obtenir le format désiré.
On peut aussi utiliser cette syntaxe :
Cela retourne la date au format américain
x = #2/3/2022#
Par contre, ceci
x =#12/15/2022# 15 décembre 2022
X sera au format DD/MM/YYYY pour la même raison évoquée plutÍ´t, il n'y a
pas de date qui ont 15 mois
MichD
Avatar
Brat'ac
MichD a couché sur son écran :
En complément, pour envoyer le contenu (date) du "Label38.Caption" vers une
cellule d'une feuille de calcul, tu dois utiliser une des 2 méthodes
mentionnées ci-haut.
la fonction de conversion Cdate() ou DateSerial()
MichD

Avec du retard
Merci pour les infos