[excel] Problème format dates [Résolu/Fermé]

Signaler
Messages postés
12
Date d'inscription
jeudi 6 septembre 2007
Statut
Membre
Dernière intervention
19 novembre 2007
-
 Momostovoi -
Bonjour,

Je travaille sur un formulaire de saisie de donnée grâce à un UserForm, jusqu'à là tout va bien mais lors de la saisie de ce qui correspond à des dates ( jj/mm/aaaa) il y a un problème d'affichage sur la feuille excel où apparaissent les informations saisies !

J'ai l'impression que parmi 4 dates saisies via des TextBox les données ne réagissent pas pareil !

Je précise! En saisissant :

TextBox1 : 01/10/2007
TB2: 05/10/2007
TB3: 10/10/2007
TB4: 21/10/2007

Apparaissent dans les cellules cibles respectivement :

10/01/2007 10/05/2007 10/10/2007 21/10/2007

et lorsque je modifie le format des cellules en format 'normal" voici ce qui apparaît :

39092 39212 39365 21/10/2007

J'avoue ne pas comprendre du tout ce qu'il se passe !!

Y a t il un moyen de paramétrer à partir du mode VBA les formats de saisie des TextBox ???

D'avance merci !!!
A voir également:

12 réponses

Messages postés
24137
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 juillet 2021
6 842
Bonjour,

Ce qu'il faut savoir c'est qu'excel a du mal avec les conversion de date en differents format et se melange facilement entre jj/mm/aaa et mm/jj/aaaa.
Essaie en analysant toi même la chaine fournie et tranforme la en 10-octobre-2007 avant de lui faire convertir avec cdate(...)

cdt
Messages postés
12
Date d'inscription
jeudi 6 septembre 2007
Statut
Membre
Dernière intervention
19 novembre 2007
4
Bon en fait cette réponse soulève une nouvelle question !

En effet il y a plusieurs champs devant renseigner des dates mais certains peuvent restent non complèter ! C'est là que surgit le problème, lorsqu'après avoir remplit l'InputBox en laissant un champ, au format date, vide cela provoque une erreur et lance le mode de déblocage !

Que faire ??! Je m'en remet à vous !
Messages postés
17154
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
13 juillet 2021
10 487
Bonjour,

La seule solution pour n'avoir aucune erreur (parce que l'erreur peut venir aussi de l'utilisateur qui remplit le formulaire), est d'utiliser un contrôle Calendrier. Au moins l'utilisateur choisit une date dans un calendrier, et le format sera bon.

m@rina
Messages postés
12
Date d'inscription
jeudi 6 septembre 2007
Statut
Membre
Dernière intervention
19 novembre 2007
4
Merci mais mes tentatives personnelles n'ont pas donné de résultat...

Ce qui m'étonne le plus est que certaines dates se comportent "normalement" et d'autres non !

Est-il possible de paramétrer un format dans le UserForm ?

...
Messages postés
1506
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
18 juin 2012
585
Bonjour
Un exemple ici
http://bvrve.club.fr/Astuces_Michel/381excelvba.html
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 082
Salut,

je confirme, les dates sont transformées en format british, ce qui conduit à inverser le jour et le mois, sauf quand le jour est supérieur à 12 où là, il ne sait pas quoi faire et laisse les données en texte au lieu de les stocker en format "numéro de série de date" (nombre de jours écoulés depuis le 01/01/1900 sur windows, sur mac c'est 1904, demandez pas pourquoi !).
Messages postés
12
Date d'inscription
jeudi 6 septembre 2007
Statut
Membre
Dernière intervention
19 novembre 2007
4
Merci à tous pour vos réponses.

Par contre impossible de convertir cela en format "normal" (numéro de série de date) ?? Quelqu'un pourrait me donner quelques indications...

Je suis allé jeté un oeil sur le lien fourni par qmike mais n'ai pas trop compris le sens des lignes de code, d'autant plus qu'elle concernent le bouton validation... Je vais néanmoins essayer de déchiffrer cela !
Messages postés
12
Date d'inscription
jeudi 6 septembre 2007
Statut
Membre
Dernière intervention
19 novembre 2007
4
Hey ça y est !
Problème résolu et je viens par la même occasion de saisir la portée de la réponse de eriic !

Il "fallait" préciser dans la macro qu'il s'agissait d'une date :

Range("A1").Value = CDate(UserForm1.TextBox1.Value)

En tout cas cela a l'air de fonctionner !

En tout cas merci à tous !
Messages postés
24137
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 juillet 2021
6 842
Re fragi

Content pour toi, ça "à l'air" de fonctionner.
Excuse moi d'insister, mais ça risque toujours de te retourner de temps en date erronée (à se demander si ce n'est pas aléatoire).
Excel est sensé se servir des parametres regionaux pour convertir une chaine "jj/mm/aaaa" en date mais bizarement il se plante régulièrement et lit "mm/jj/aaaa". C'est bon 60 fois et la 61 c'est faux sans que tu saches pourquoi...
Si tu veux eviter des heures de recherches dans 15j pour une donnée erronée, prend les devant et transforme ta chaine en "jj mmmm aaaa" avec donc le mois en lettre avant de le passer à cdat(), ça lui leve toute ambiguïté. C'est facile, pas cher, et ça peut rapporter gros ;-)

Bon courage
Une solution est d'analyser ta Date en sortie du UserForm :

un truc comme ça ...

J'ai un userform appelé MonUserform
Une textbox qui est sensée accueillir des dates MaDate
Trois Variables de type String pour dissèquer le contenu de MaDate
On admet qu'on écrit dans la cellule R16


If MonUserform.MaDate.Text <> "" Then
MyDateDay = Left(MonUserform.MaDate.Text, 2)
MyDateMonth = Mid(MonUserform.MaDate.Text, 4, 2)
MyDateYear = Right(MonUserform.MaDate.Text, 2)
Cells(16, "R").Value = CDate(MyDateMonth & "/" & MyDateDay & "/" & MyDateYear)
Cells(16, "R").Value = Format(Cells(RowID, "R").Value, "dd/mm/yy")
End If



Left, Mid et Right vont découper MaDate.text afin d'en faire sortir les données essentielles "jj/mm/aa" , note : même si l'utilisateur tape "jj/mm/aaaa" ça marche !

Si ça peut aider ...
Messages postés
54281
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
22 juillet 2021
16 255
Bonjour

Il semblerait que tes dates sont importées au format américain mois/jour/année !
OK ? Bye !
Messages postés
24137
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 juillet 2021
6 842
remarque de m@rina judicieuse
eric