Problème de conversion date/heure

  • Initiateur de la discussion Initiateur de la discussion Toho
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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
 
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é...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
432
Réponses
3
Affichages
148
Réponses
1
Affichages
212
Réponses
10
Affichages
455
Retour