XL 2016 données date en format mm/jj/aaaa hh:mm:ss

shayulira

XLDnaute Nouveau
Bonjour,
dans une base de données j'ai une colonne (cf PJ) où se trouve l'information de la date avec l'heure au format mm/jj/aaaa hh:mm:ss (les secondes s'affichent quand on se trouve dans la cellule).
Je souhaiterais récupérer la date au format jj/mm/aaaa dans une colonne puis l'heure au format hh:mm (sans les secondes) dans une autre.
Par ailleurs, vous pourrez constater que les deux premières cellules n'ont pas le même format que les autres : ce sont les seules à être au format jj/mm/aaaa hh:mm:ss.
Il s'agit de données qui me sont transmises telle quelles.
N'étant pas un expert d'Excel, je vous remercie par avance pour l'aide que vous m'apporterez.
 

Pièces jointes

  • Dates avec horaires.xlsx
    9.5 KB · Affichages: 23

job75

XLDnaute Barbatruc
Bonsoir shayulira,

Les cellules A3 et A4 contiennent des textes et non pas des nombres au format Date.

Pour éviter ce genre de problème entrez en B3 et C3 la formule =--$A3 et tirez-la vers le bas.

Ensuite mettez la colonne B au format jj/mm/aaaa et la colonne C au format hh:mm:ss ou hh:mm si vous ne voulez pas voir les secondes.

A+
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Je souhaiterais récupérer la date au format jj/mm/aaaa dans une colonne puis l'heure au format hh:mm (sans les secondes) dans une autre.
Par ailleurs, vous pourrez constater que les deux premières cellules n'ont pas le même format que les autres : ce sont les seules à être au format jj/mm/aaaa hh:mm:ss.

autre méthode
:cool: "By Design" un texte "numérique" devient numérique lors de l'utilisation d'un opérateur mathématique...
magie d'Excel :
en B3 la formule : =ENT(A3) format jj/mm/aaaa
en C3 la formule : =MOD(A3;1) format hh:mm
sélectionner simultanément ces 2 cellules
puis double cliquer sur le coin inférieur droit de C3
1571168878167.png
 

shayulira

XLDnaute Nouveau
Bonjour Job75 et Modeste geedee

je vous remercie pour vos retours rapides qui règlent en partie mon problème : avec vos méthodes, la date est bien dissociée de l'heure qui s'affiche bien en hh:mm.
Cependant, est sauf erreur de ma part, la date reste au format mm/jj/aaaa malgré la mise au format jj/mm/aaaa. J'ai l'impression que la mise au format ne prend pas.
Pour info, mais vous l'aurez compris, le 10 qui se répète dans toutes les cellules correspond au mois d'octobre.
Vous serait-il possible de me renvoyer le fichier avec vos solutions.
En vous remerciant par avance.
 

Pièces jointes

  • Dates avec horaires.xlsx
    15.8 KB · Affichages: 13

job75

XLDnaute Barbatruc
Bonjour shayulira, Modeste geede, le forum,

Donc d'après vous à partir de A5 les jours et les mois ont été inversés par une conversion au format US.

Pour les remettre dans le bon ordre entrez en B3 et tirez vers le bas :
Code:
=SI(JOUR(A3)>12;ENT(A3);DATE(ANNEE(A3);JOUR(A3);MOIS(A3)))
Bonne journée
 

job75

XLDnaute Barbatruc
Bien comprendre qu'à partir de A5 les dates sont tout à fait normales et appartiennent au mois de décembre, puis novembre, octobre, etc...

Rien ne permet de savoir qu'il faut inverser les mois et les jours, il n'y a que vous qui pouvez le décider.
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Cependant, est sauf erreur de ma part, la date reste au format mm/jj/aaaa malgré la mise au format jj/mm/aaaa. J'ai l'impression que la mise au format ne prend pas.
Pour info, mais vous l'aurez compris, le 10 qui se répète dans toutes les cellules correspond au mois d'octobre.
je comprend surtout que vos données viennent d'une appli autre que Excel !!!
"By Design" Excel utilise lors de l'ouverture et avant toute action opérateur une reconnaissance automatique de date (selon le format local)
les dates reconnues valides sont bien au format interne Excel !!! (cadrage numérique droit)
les dates non reconnues restent au format texte !!! (cadrage texte gauche, il n'existe pas de mois supérieur à 12
1571225921715.png



soit tu nous fourni ici le fichier original (non excel, i.e. ".csv", ".txt" ou autre)
soit tu importes toi-même ce fichier en utilisant l'assistant de conversion en précisant à l'étape 3 pour chaque champ "date" le format lu !!!
 
Dernière édition:

shayulira

XLDnaute Nouveau
Bonjour Job75 et Modeste geedee,
effectivement les données qui me sont fournies ne proviennent pas d'excel : je les récupère telles quelles et je dois les exploiter.
Vos aides m'ont été précieuses pour répondre en grande partie à mon problème et je vous en remercie beaucoup.
Cordialement
 

Docmarti

XLDnaute Occasionnel
Bonjour.
Voici une suggestion en VBA pour recuperer vos dates inversees.

VB:
Sub Recuperer_Date_inversee()
 
 dern = Cells(Rows.Count, 1).End(xlUp).Row
 Set r = Range(Cells(3, 1), Cells(dern, 1))
 
 T = r.Value 'On met dans T les dates inversees et les dates non inversees
 
 r.NumberFormat = "@" 'On change la propriete Numberformat pour String
 r.Value = T 'Ceci transforme toutes les dates en String
 
 T = r.Value 'On met dans T les dates de type String
 
 r.NumberFormat = "" 'On change la propriete Numberformat pour Standard
 r.FormulaLocal = T ' Ceci transforme les dates de type String en valeurs de type Date
 
End Sub
 

job75

XLDnaute Barbatruc
Bonjour shayulira, Modeste geedee, Docmarti,

Si les dates/heures importées sont toujours des textes au format mm/jj/aaaa hh:mm:ss :

- avant de les importer en colonne A mettre cette colonne au format Texte pour éviter toute conversion

- formule en B3 =DATEVAL(STXT(A3;4;2)&"/"&GAUCHE(A3;2)&"/"&STXT(A3;7;4))

- formule en C3 =TEMPSVAL(DROITE(A3;8))

A+
 

Pièces jointes

  • Dates avec horaires(1).xlsx
    13.8 KB · Affichages: 15

job75

XLDnaute Barbatruc
Si les données sont stockées dans un fichier TXT il y a 2 solutions :

- soit on ouvre le fichier TXT manuellement, on copie les données et on les colle en colonne A du fichier précédent

- soit on ouvre le fichier TXT par macro, la copie se fait avec inversion automatique des mois et des jours :
VB:
Sub Importer_TXT()
Dim dest As Range
Application.ScreenUpdating = False
With Feuil1 'CodeName de la feuille
    Set dest = .[A3] '1ère cellule de destination
    dest.Resize(.Rows.Count - dest.Row + 1, 3).ClearContents 'RAZ
End With
With Workbooks.Open(ThisWorkbook.Path & "\FichierTXT.txt").Sheets(1).UsedRange 'à adapter
    dest.Resize(.Rows.Count) = .Columns(1).Value
    dest(1, 2).Resize(.Rows.Count) = "=INT(RC[-1])"
    dest(1, 3).Resize(.Rows.Count) = "=RC[-2]-RC[-1]"
    .Parent.Parent.Close
End With
End Sub
Téléchargez les fichiers joints dans le même répertoire (le bureau).
 

Pièces jointes

  • VBA Import TXT(1).xlsm
    19.4 KB · Affichages: 14
  • FichierTXT.txt
    2.2 KB · Affichages: 15

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16