Problème de conversion date/heure

Toho

XLDnaute Nouveau
Bonjour,

J’ai constaté que le problème que je vais exposer est assez « populaire » dans le monde des
utilisateurs Excel. J’ai effectué pas mal de recherches avant de devoir me résigner et faire appel
à vous, ne trouvant pas la réponse malgré toutes les explications piochées par ci, par là…

Donc, j’ai réalisé une macro qui ouvre un fichier texte (voir exemple.txt en PJ), extraie les datas, procède
à divers traitements et enregistre les nouvelles datas traitées au format texte. Tout fonctionne.
A un détail près : la date est erronée après traitement.

En effet, en ouvrant le fichier .txt avec Excel, la date 02/06/2015 12:50:17.249, est convertie en
50:17.2. Pour paraît cela, il suffit de procéder manuellement à une sélection des cellules de la colonne A et
de changer le format : clic droit -> format de cellule -> personnalisé : jj/mm/aaaa hh:mm:ss. On enregistre
au format .txt : ça marche.

Une partie de ma macro est censée effectuer cette tâche mais problème : les mois et les jours sont
inversés… ! Excel, soft Américain, impose automatiquement un format de date mm/dd/yyyy hh:mm:ss …

Ce code, simple, ne fonctionne pas :

Range("A10").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.NumberFormat = "dd/mm/yyyy hh:mm:ss"

Tout comme la fonction =Cdate(), jours et mois restent inversés.

J’ai essayé en récupérant date et heure en cellules A2 et A3 en recréant la date, sans succès : les mois et jours
restent inversés. Si une âme charitable aurait une idée…

D’avance merci !
Et bonne journée !
 

Pièces jointes

  • exemple.zip
    826 bytes · Affichages: 26
  • exemple.zip
    826 bytes · Affichages: 17
  • exemple.zip
    826 bytes · Affichages: 16

ERIC S

XLDnaute Barbatruc
Re : Problème de conversion date/heure

Bonjour

le code ci-dessous, brut de fonderie enregistreur macro fonctionne pour insérer un fichier texte

Code:
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;C:\Users\EricCathy\Desktop\exemple.txt", Destination:=Range("$A$1"))
        .Name = "exemple"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(4, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
    Range("A10:A39").Select
    Selection.NumberFormat = "mm/dd/yyyy hh:mm"

le point important est le datatypes avec array(4,....)
avec Array(1,... le numberformat ne fonctionne pas

donc peut-être une piste pour toi
 

PMO2

XLDnaute Accro
Re : Problème de conversion date/heure

Bonjour,

Une autre approche avec le code qui suit.
Le fichier exemple.txt doit être placé dans le même répertoire que le classeur contenant la macro.
Code:
Sub OuvreFichierText()
'########################################################################
'### FieldInfo:=Array(Array(1, xlTextFormat)) est le truc qui va bien ###
'########################################################################
Workbooks.OpenText _
  Filename:=ThisWorkbook.Path & "\exemple.txt", Origin:=xlMSDOS, StartRow:=1, _
  DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=False, _
  Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, _
  FieldInfo:=Array(Array(1, xlTextFormat)), _
  TrailingMinusNumbers:=True, Local:=True
End Sub
 

Modeste geedee

XLDnaute Barbatruc
Re : Problème de conversion date/heure

Bonsour®
autre proposition :
VB:
Sub Macro1()
    Workbooks.OpenText Filename:="C:\Chemin\toho-exemple.txt", _
        Origin:=xlMSDOS, StartRow:=10, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 4), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), TrailingMinusNumbers:=True, local:=True
End Sub

Oupsss... désolé
PMO2 y avait pensé...
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87