Téléchargement
illégal
Posez votre question Signaler

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

fragi 12Messages postés 6 septembre 2007Date d'inscription - Dernière réponse le 9 juin 2008 à 13:34
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 !!!
Lire la suite 

[excel] Problème format dates »

12 réponses
Réponse
+4
moins plus
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 !
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour
Un exemple ici
http://bvrve.club.fr/Astuces_Michel/381excelvba.html
Ajouter un commentaire
Réponse
+1
moins plus
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 !).
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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 ...
Ajouter un commentaire
Réponse
-1
moins plus
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
Ajouter un commentaire
Réponse
-1
moins plus
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 ?

...
Ajouter un commentaire
Réponse
-1
moins plus
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 !
Ajouter un commentaire
Réponse
-1
moins plus
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 !
Ajouter un commentaire
Réponse
-2
moins plus
Bonjour

Il semblerait que tes dates sont importées au format américain mois/jour/année !
OK ? Bye !
Ajouter un commentaire
Réponse
-2
moins plus
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
Ajouter un commentaire
Réponse
-2
moins plus
remarque de m@rina judicieuse
eric
Ajouter un commentaire
Ce document intitulé « [excel] Problème format dates » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?