|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : janvier 2005 Messages : 230 ![]() |
Bonjour a tous,
Je suis confronté à un problème avec le format de la date. J'ouvre un fichier texte séparé par des tabulations à l'aide d'une macro. Lorsque le fichier TXT s'ouvre sous excel la date qui est à l'origine sous le format jj/mm/aa devient mm/jj/aa. Comment faire pour que le format de la date lors de l'importation des données issue du fichier TXT reste normal (c-à-d jj/mm/aa) Merci pour votre aide |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Tu l'ouvres comment ton fichier ?
Je dirais qu'il suffit de changer la mise en forme de tes cellules, mais ça dépend de comment tu charges tes données. Peux-tu donner plus de précisions ? |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : janvier 2005 Messages : 230 ![]() |
Bonjour,
Voila un extrait du fichier texte celui que j'ai a faire digérer avec la macro P 08/11/2011 159804 73385 P 08/11/2011 159811 68875 P 08/11/2011 159811 68875 C'est la même chose dans le classeur Excel qui comporte la macro même paramétrage que ci-dessus. Voila ce que j'ai en sortie après exécution de la macro 11/08/11 159804 73385 11/08/11 159811 68875 par cette commande sdate correspondant à la date Count au N° de la ligne qui est en cours de remplissage Quand je fait du pas à pas sdate est sous le bon format soit dans mon exemple 08/11/2011 J'espère avoir été assez explicite dans mes détails pour que tu puisse me donner un coup de main et si besoin est j'essayerai d'apporter un peu plus d'info. Merci par avance pour ton aide c'est sympa car là je suis dans le brouillard le plus complet. |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
C'est toujours compliqué les dates avec les différentes conventions existantes.
Première étape, vérifier que c'est la bonne date que tu récupères. Même si tu vois 8/11/2011 en mode pas à pas, ça va dépendre de la configuration de ton PC. Le mieux est de mettre en espion Tu peux aussi faire des tests avec un jour du mois supérieur à 12 pour voir (Excel est parfois plus malin qu'on ne le pense, il peut prendre par défaut le premier nombre comme mois, mais basculer sur le deuxième si ça donne un mois qui n'existe pas). Après, si tu ne maîtrises pas le format de dates sur les postes clients, le mieux c'est sans doute de parser le texte pour le gérer à ta sauce (en utilisant inStr de "/") Deuxième étape. Si tu es sûr que tu récupères la date que tu veux, quand tu la mets dans la cellule, utilises Et pour le format des cellules, fais plutôt un format personnalisé "dd/mm/yyyy", comme ça ça ne dépendra pas du poste. Tu peux aussi le faire directement dans la macro : Code :
Range("A" & Count).NumberFormat = "dd/mm/yyyy" |
|
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() Inscription : février 2007 Messages : 247 ![]() |
Bonjour, eventuellement peux tu ouvrir le fichier en csv en conservant les tabulations, puis utiliser les fonctions Right et Left ou Mid pour récupérer la date ?
Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : janvier 2005 Messages : 230 ![]() |
Re,
Alors pour les valeurs de Day(sdate) et Month(sdate) effectivement j'ai une inversion a ce niveau déjà Après un niveau du fichier d'export pour le logiciel a partir duquel il est générer pour lui c'est bien la bonne date. Sinon pour ce que tu me dit avec InStr je connais pas cette fonction, je vais tenté de trouver des infos dessus |
|
|
00
|
|
|
#7 | ||||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Quand tu remplis sDate, c'est après un Split ?
La question de Djohn m'a mis un doute, le fichier texte, tu l'ouvres directement sous excel ou c'est dans ta macro que tu fais un Je t'envoie un exemple d'utilisation de InStr Donc pour décortiquer toi-même ta date : Code :
ou plus simple si tu es sûr qu'il y a toujours 2 chiffres pour tes jours/mois et 4 chiffres pour tes années : Code :
|
||||
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : janvier 2005 Messages : 230 ![]() |
Salut,
Pour ce qui est du format, c'est un txt qui m'est envoyé et je ne peux pas changer le format , c'est une contrainte de format que je peux pas contourner. Pour ce qui est de l'ouverture du fichier, c'est directement la macro qui ouvre le fichier texte. la seul action qu'a à faire l'utilisateur c'est juste appuyer sur un bouton pour lancer la procédure. Code :
Workbooks.OpenText Filename:=RepTravail + fichier Je vais tenter de voir avec ta 1ème solution qui me semble a prime abord être plus facile a adapter au reste du code. D'après les tests que j'ai fait ça me semble bien fonctionner, reste a voir si dans la durée ça fonctionne ou pas Dans tous les cas, merci beaucoup pour votre aide précieuse |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com