Conversion date numérique en date+hh:mm:ss.ms

Bonjour,

Je suis complètement bloqué par un souci de format de date sous Excel 2007.

Dans le fichier joint :

Je souhaiterais savoir comment convertir (via n'importe quelle méthode !) les nombres de la colonne A pour obtenir la date correspondante (elles sont correctes) en colonne B avec dans l'idéal un format jour/mois/année + heure/minute/seconde/milliseconde.

Ou seulement la composante heure/minute/seconde/milliseconde si cela est plus simple...

Le changement de format de colonne (date ou personnalisé = #####) ne marche pas, ainsi que le changement des options avancées du classeur (calendrier 1904...etc)...

Merci par avance de votre aide.

Cordialement,

458conversion.xlsx (8.51 Ko)

Bonjour,

Je ne crois pas que ce soit possible.

Dans le système Excel le premier janvier 2013 est :

41275

Les heures et minutes s'écrivent ensuite sous forme décimale :

41275.5 = 1er janvier 2013 à 12:00

Je te laisse deviner la suite.

Je ne vois aucune correspondance entre les chiffres que tu fournis et la notation Excel.

A+

Bonjour

Comme dit par galopin01 que je salue au passage, pas de rapprochement visible avec un quelconque format de date.

Cependant, ton résultat peut être obtenu avec en B2 la formule

=TEXTE(GAUCHE(A2;7)/40,5343168047073;"jj/mm/aaa hh:mm:ss")&TEXTE(DROITE(A2;4)*1;",000")

Si tu es en séparateur point, tu remplaceras la dernière virgule de la formule par un point

Cordialement

367conversion.xlsx (9.55 Ko)

Bonsoir,

J'ai suivi ce fil avec beaucoup d'intérêt. Je pensais qu'il fallait diviser par 39.4782154787545 mais ça ne passait pas

Amadeus, peux-tu nous expliquer pourquoi tu divises par 40.5343168047073

Bonjour Yvouille

Je dois dire que je m'attendais à cette question si par hasard, quelqu'un était curieux sur ce sujet et la réponse que j'y ai apporté.

Comme signalé dans ma réponse, je n'ai trouvé aucun élément correspondant à une date (en français ou en anglais puisque notre ami a une version anglaise)

En tatonnant, je me suis rendu compte que le 0527 au format ,000 renvoyait les millièmes.

Avec les 7 premiers chiffres et vu leur importance, il ne pouvait s'agir de date puisque 167344 ne peut être rapproché de 41284 qui correspond au 10/01/2013.

Pour obtenir la valeur 41284,5246180556 qui au format jj/mm/aaa hh:mm:ss correspond au 10/01/2013 12:35:27, il ne restait plus qu'à utiliser une cellule intermédiaire calculée avec Valeur cible.

Maintenant, cela ne fait pas une règle pour d'autres données (reste à voir) mais un calcul rationnel avec une méthode dite communément "au pif"

J'ai planché longtemps sur le sujet, curiosité oblige et n'ayant pas trouvé de règle, je me suis rabattu sur cette façon peu conventionnelle.

Si quelqu'un trouve, cela éclairera aussi ma lanterne personnelle.

Si notre ami pouvait nous dire le format utilisé pour obtenir ces nombres, nous pourrions raisonner différemment

Bien cordialement

Salut Amadeus et merci pour ta réponse,

Amadéus a écrit :

Maintenant, cela ne fait pas une règle pour d'autres données (reste à voir)

D'accord, me voila rassuré

A la prochaine.

Bonsoir Paulhino64, Yvouille et Amadéus,

Je me suis aussi intéressé au problème, mais j'ai laissé tombé, car j'ai vu ta formule Amadéus et ce n'est pas mon fort. Je rebondis quand même sur votre échange, car quelque chose m'échappe, Amadéus tu dis que 0527 renvoyait que des millièmes. Soit.

Pour votre information, dans le fichier de paulhino64, et je ne sais pas pourquoi, les décimales ne sont pas affichées d’où, probablement l'erreur, mais ta formule ne prend pas du tout en compte les 527 Amadéus, si ?

Les formules et moi font deux, alors pardonnez moi celle-ci qui donne exactement le même résultat, mais qui me semblerait plus correcte, car à mon avis, 527= 5mn et 27s :

=TEXTE((GAUCHE(A2;7)/40,53432052)+("00:"&STXT(A2;8;1)&":"&STXT(A2;9;2));"jj/mm/aaa hh:mm:ss") & TEXTE(DROITE(A2;4)*1;",000")

J'ai divisé 1673440 par la repésentation en nombre de "10/01/2013 12:30:00" ce qui me donne 40,53432052 puis ajouté 00:05:27 puis les millièmes.

Les exemples donnés par Paulhino64 ne sont pas suffisamment espacés pour que puisse en définir une règle fiable.

Paulhino64, peux-tu nous donner d'autres exemples avec d'autres dates et heures et quelques explications quant à la règle de conversion ?

Bonjour,

Merci pour vos contributions.

Mais la règle donnée par la formule d'Amadeus et de Benead ne semble pas pouvoir être généralisée.

Ci-joint un fichier avec 4 autres exemples... je n'ai pas beaucoup de données à vous donner malheureusement...

A l'origine il s'agit d'un fichier en .adi lu et retraité via une requête sous SAS EG.

La table obtenue donne notamment une date dans un champ numérique d'un format particulier :

Ex 5 du fichier joint : 2013-03-28T09:45:41.406.

C'est au moment de l'export des données sous Excel que ce champ devient 1680098134,885 et pose alors des problèmes de "re" conversion dans un format de date+heure plus classique...

229autres-ex.xlsx (8.45 Ko)

BonjourPaulhino64,

Pourrait-on avoir un extrait significatif de tonf fichier texte ? Cela nous permettrais de traiter la date par anticipation dans le fichier texte.

L'import de ton fichier vers Excel traite cette donnée de quelle façon ? En date, en nombre, en texte ou en standard ?

Peut-on avoir le code de l'import ? A moins que tu ne le fasse manuellement ?

Bonjour Benead,

Non je regrette, je ne peux pas vous fournir même un extrait de ce fichier. Le fichier d'origine est extrêmement lourd et je ne peux pas le splitter... De plus il s'agit d'un fichier concernant une seule date calendaire. Seule la composante heure/minutes...etc change.

Après je ne sais pas comment est traitée la donnée au moment de l'export. Je n'ai pas accès au code, c'est une fonctionnalité proposé par SAS EG...

Comme je le disais précédemment, dans la table sous SAS la donnée est considérée comme numérique (format de ce type pour une time value : 2013-03-28T09:45:41.406). L'export d'Excel transforme le champ en 1680098134,885 (format de cellule en texte)...

Si Excel laissait ce champ tel quel je pourrais travailler sur les données mais là non !

Merci.

Bonsoir,

Que veux-tu dire par extrêmement lourd ?

C'est le logiciel d'SAS EG qui fait l'import directement au format Excel ou c'est toi qui importe via Excel ?

Ce qui peut être envisageable, plutôt que de faire un import classique via l'import interne d'Excel, c'est d'ouvrir ton fichier texte (si c'est un fichier texte) avec l'instruction Open. Voici un exemple :

Sub Import()
   Dim Lig As Long, sTexte As String

   Open "D:\Test\FichierTest.txt" For Input As #1
   Do While Not EOF(1)
      Lig = Lig + 1
      Line Input #1, sTexte
      Cells(Lig, "A").Value = sTexte
   Loop
   Close #1
End Sub

Si cela peut t'aider.

Merci je vais essayer.

Le fichier dézippé fait plus de 8Go. Oui c'est le logiciel qui fait directement l'import en Excel.

Je vais essayé en plus de mon côté de modifier la requête SAS...

Rechercher des sujets similaires à "conversion date numerique"