Que faire pour forcer un encodage de date correct ?

  • Initiateur de la discussion Initiateur de la discussion gody1954
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gody1954

Guest
Bonjour,

Je dois demander à l'utilisateur d'encoder la date de sa demande, voilà le code que j'utilise.

Dim Date_demande As Date

Selection.NumberFormat = "m/d/yyyy"
Date_demande = InputBox("Date de la demande (format jj/mm/aa)")
Range("D4") = Date_demande


Si l'utilisateur encode bien la date, pas de soucis, mais si il tappe enter sans avoir encodé l'InputBox, => bug......

Bonne journée
 
Re : Que faire pour forcer un encodage de date correct ?

bonjour

Dim Date_demande As Date
Selection.NumberFormat = "m/d/yyyy"
do while not isdate(Date_demande)
Date_demande = InputBox("Date de la demande (format jj/mm/aa)")
loop
Range("D4") = Date_demande
 
Re : Que faire pour forcer un encodage de date correct ?

bonjour

Dim Date_demande As Date
Selection.NumberFormat = "m/d/yyyy"
do while not isdate(Date_demande)
Date_demande = InputBox("Date de la demande (format jj/mm/aa)")
loop
Range("D4") = Date_demande

Merci pour ta réponse, je viens de tester, jai un soucis, il n'ouvre pas l'InputBox, il m'affiche directement 0 Janv. 00 et passe à l'instruction suivante.

J'ai fais le tour de la société, pas moyen de trouver quelqu'un qui était né en l'an 00, donc même pas moyen de l'accusé 😛
 
Re : Que faire pour forcer un encodage de date correct ?

Bonjour gody1954, mutzik,

Code:
Dim Date_demande [COLOR="Red"]As String[/COLOR]
Range("D4").NumberFormat = "m/d/yyyy"
Do While Not IsDate(Date_demande)
Date_demande = InputBox("Date de la demande (format jj/mm/aa)")
If Date_demande = "" Then Exit Sub 'si l'on veut sortir sans rien faire...
Loop
Range("D4") = Date_demande

A+
 
Re : Que faire pour forcer un encodage de date correct ?

Bonjour gody1954, mutzik,

Code:
Dim Date_demande [COLOR="Red"]As String[/COLOR]
Range("D4").NumberFormat = "m/d/yyyy"
Do While Not IsDate(Date_demande)
Date_demande = InputBox("Date de la demande (format jj/mm/aa)")
If Date_demande = "" Then Exit Sub 'si l'on veut sortir sans rien faire...
Loop
Range("D4") = Date_demande

A+

Merci la procédure fonctionne
un seul petit soucis, quand j'encode la date, par uniformité dans la société nous utilisons le format JJ/MM/AA, mais si j'encode dans ce sens là, l'affichage le donne MM/JJ/AA. J'ai modifié
Range("D4").NumberFormat = "m/d/yyyy"
en
Range("D4").NumberFormat = "d/m/yyyy"
mais rien ne change ???
 
Re : Que faire pour forcer un encodage de date correct ?

Bonjour à tous

Pour les dates, j'utilise souvent Cdate. A voir si cela peut aider.

ex:
Code:
DateTX = TBDate & "/" & TXMois & "/" & TXAn
Cells(derl, 1) = CDate(DateTX)
 
Re : Que faire pour forcer un encodage de date correct ?

Re, salut Michel, CHALET53,

Comme le dit Michel, il faut utiliser CDate :

Code:
Dim Date_demande As String
Range("D4").NumberFormat = "d/m/yyyy"
Do While Not IsDate(Date_demande)
Date_demande = InputBox("Date de la demande (format jj/mm/aa)")
If Date_demande = "" Then Exit Sub 'si l'on veut sortir sans rien faire...
Loop
Range("D4") = [COLOR="Red"]CDate[/COLOR](Date_demande)

Noter que si l'on entre 02/15/10 ou 15/02/10 dans la boîte, on obtiendra 15/2/2010 dans les 2 cas, Excel est une bête d'intelligence...

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour