Problème de date lors de l'ouverture d'un fichier texte formatté [Résolu]

Signaler
Messages postés
25
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
29 janvier 2011
-
ivantil
Messages postés
25
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
29 janvier 2011
-
Bonjour à tous,

Premièrement, désolé si ce problème à déjà été résolu ailleur, mais étant très spécifique, je n'ai pas trouvé une solution sur les forums. Toutes mes excuses si j'ai mal cherché.

J'ai un programme java qui me sort des informations dans un fichier texte formaté (informations séparées par un '§' dans chaque ligne...) mais le problème ne viens pas de la.

Lorsque j'ouvre ce fichier texte manuellement depuis excel, tout se passe bien. j'ai donc créé une macro qui permette de rapatrier les informations de plusieurs de ces fichiers. Seulement, lors de l'ouverture depuis la macro, Excel fait n'importe quoi avec les dates. Je m'explique : pour le mois de décembre 2008, les dates antérieures au 12 décembre sont prises au format US (cad qu'excel prends le 01/12 pour le 12 janvier) pour les dates à partir du 12 décembre, il les prends au format FR (il comprends bien que 15/12 est le 15 décembre). Puis, il me colle les dates ainsi interpretées dans les cases du fichier ouvert. Résultat, dans le fichier (ne contenant des date QUE du mois de décembre) j'ai des dates qui correspondent au 12 de chaque mois de l'année ET des dates du 12 au 31 décembre. (même si je change l'affichage des dates en JJ/MMMM/AAAA).

Résultat des couses, j'ai des données qui sont complètement inexploitables (alors que si j'ouvre les fichiers manuellement et que je fais un copier/coller à la main, ça marche parfaitement).

J'ai tout vérifié, et le problème se pose au moment de l'ouverture du fichier. J'ai utilisé la fonction d'enregistrement de macro pour trouver la bonne commande et l'intégrer dans ma macro, mais le problème est le même.

Quelqu'un aurait-il une idée?

Merci de votre aide!

--==IvanTil==--

3 réponses

Messages postés
25
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
29 janvier 2011

Re-Bonjour,

En écrivant ma réponse précédente, je me suis rappelé qu'il éxistait un aide dans l'éditeur VBA. Grace à cette aide, j'ai trouvé la solution à mon problème en utilisant FileInfo:=Array(Array(1,1), Array(2,1), Array(3,xlDMYFormat), etc... Array(13,xlDMYFormat)

En fait, pour info (pour ceux qui sont comme moi avant d'avoir trouvé) dans l'aide ils expliquent qu FileInfo permet de définir le format de lecture de chaque colonne. la valeur 1 est la valeur par défaut qui laisse excel (mal) interpreter les valeurs du fichier. Il existe plusieurs variables comme xlDMYFormat qui permettent de "forcer" le type de valeur utilisé (texte, dates etc...)

Donc, Voila un problème de résolu. Merci encore de votre aide et de votre temps!

A bientôt!
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Bonjour,

Peux tu nous donner ton code pour voir si le probème ne vient pas de la?
Ensuite, tu as cerné une partie du problème. sur le principe de date Us et date FR
Par contre dans ta macro as-tu testé de mettre le mot clé "format" quand ta macro lit et retranscrit tes données de ton fichier texte?
En tout cas bon courage

S.L.B.
<hr />
Messages postés
25
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
29 janvier 2011

Merci de ta réponse. Le code pour l'ouverture du fichier est :

    Workbooks.OpenText Filename:= _

        file, _

            Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _

            :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:= _

            False, Comma:=False, Space:=False, Other:=True, OtherChar:="§", _

            FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array _

            (6, 1), Array(7, 1))

Mais je ne voie pas ou je peux utiliser le mot clé "Format"... Je ne suis pas un pro des macro (loin de là, j'ai appris en utilisant l'enregistreur de macro...) et je ne sais pas comment utiliser ça...

Je ne mets pas le reste du code vu que j'ai tout vérifié et le problème viens de l'ouverture du fichier... Je pense qu'il doit y avoir des options à modifier ou à ajouter pour régler mon problème sur cette commande.

L'idéal serait que le fichier soit ouvert sans AUCUNE interprétation de la part d'excel et que tout reste en chaîne de caractères.

Pour info, le fichier texte ouvert contient des lignes comme celle-ci :
        30 mn§BEA§01/12/2008§26§13203§Téléphone§défaut d'alim§Immédiatement§ECEME§Universal§CSM/ISM§Garantie§20/12/2008

Du coup, les deux dates (date de début et date de fin) son considérées comme étant le 12 Janvier 2008 et le 20 Décembre 2008.

Merci de votre aide!

--==IvanTil==--