VBA txt vers Excel format date

Signaler
Messages postés
1
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
16 octobre 2008
-
Messages postés
9
Date d'inscription
lundi 3 novembre 2008
Statut
Membre
Dernière intervention
12 juin 2013
-
Hello,

je génère un fichier texte à partir d'une application Business Object v5
Ensuite à partir d'une macro VB, je veux enregistrer ce fichier .txt au format Excel.

Donc j'ouvre une appli Excel, puis j'ouvre mon fichier txt dans Excel et je l'enregistre en .xls.

Mon problème est le suivant :
le fichier txt contient des dates, et quand il est au format .xls, toutes les dates sont inversées.
Elle sont stockées au format anglais MM/DD/YYYY.
Pour corser le tout, cela s'éxéute en batch sur un serveur et je n'ai donc pas la main sur Excel.

J'ai vérifié tous les paramètres régionaux et tout est bien en francais.

Voici le bout de code qui génère mon fichier xls :

Sub saveasexcel()

Dim appExcel As New Excel.Application
appExcel.Visible = False
Workbooks.OpenText Filename:=chemin_exporte_1$ + nom_fichier1
chemin_fichier1 = chemin_exporte_1$ + nom_fichier1
appExcel.ActiveWorkbook.SaveAs Filename:=Left(chemin_fichier1, Len(chemin_fichier1) - 4) & ".xls", FileFormat:=xlNormal
nom_fichier1 = Left(nom_fichier1, Len(nom_fichier1) - 4) & ".xls"
ActiveWorkbook.Close SaveChanges:=False
appExcel.Quit
Set appExcel = Nothing

End Sub

Avez vous une solution, car j'ai plein de transaction de ce genre sur des fichiers txt comportant des dates.


puce

2 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

peux-tu nous donner un exemple de fichier text ?

A+
Messages postés
9
Date d'inscription
lundi 3 novembre 2008
Statut
Membre
Dernière intervention
12 juin 2013

Bonjour,

J'ai eu le même problème que toi la semaine passée.
Ayant pensé à un problème d'anglais inopiné, j'ai fait une recherche sur les forums. J'y ai trouvé une information sur un problème analogue, sur une autre commande...






<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

 








SaveAs propose le paramètre 'Local', de valeur True ou False.









True enregistre les fichiers en fonction de la langue utilisée par Excel.









False (par défaut) enregistre les fichiers en fonction de la langue de VBA… donc en Anglais.









 








J’ai extrapolé de SaveAs à OpenText :









 







Ci-dessous mon code :









    Workbooks.OpenText FileName:=NomFichierTxt_01, _







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







        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _







        Tab:=True, Semicolon:=False, Comma:=False, Space:=False,  _ 
        Other:=False, _







       
local:=True, _











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










                    Array(4, 1), Array(5, 1), Array(5, 1), Array(6, 1), _










                    Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1)), _










                   
TrailingMinusNumbers:=True






 





En 6ème ligne le fameux paramètre, non ‘majusculé’ par l’Éditeur, par parfaitement exécuté par le code.




 





J’espère que cela résoudra ton souci.

Cordialement
André