Bonjour le forum,
Voilà, lors de l'import d'un fichier txt, j'ai un champ date au format AAAAMMJJHH24MISS que je souhaiterai convertir au format JJ/MM/AAAA.
Dans Excel, j'ai crée une macro automatique.
Formule pour extraire les 8 premiers chiffres =GAUCHE(A1;8). Ce qui donne AAAAMMJJ. Ensuite, j'ai crée une autre formule =DATE(GAUCHE(A1;4);STXT(A1;5;2);DROITE(A1;2)). Ce qui donne comme résultat JJ/MM/AAAA.
Voici la macro à améliorer en VB si possible :
Voilà, lors de l'import d'un fichier txt, j'ai un champ date au format AAAAMMJJHH24MISS que je souhaiterai convertir au format JJ/MM/AAAA.
Dans Excel, j'ai crée une macro automatique.
Formule pour extraire les 8 premiers chiffres =GAUCHE(A1;8). Ce qui donne AAAAMMJJ. Ensuite, j'ai crée une autre formule =DATE(GAUCHE(A1;4);STXT(A1;5;2);DROITE(A1;2)). Ce qui donne comme résultat JJ/MM/AAAA.
Voici la macro à améliorer en VB si possible :
Code:
Sub Form_Date()
'
' Form_Date Macro
' Macro enregistrée le 25/09/2007 par Bramtane
'
'
Columns("D:D").Select
Selection.Insert Shift:=xlToRight
Range("D1").Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],8)"
Range("D1").Select
Selection.Copy
Range("D2").Select
ActiveWindow.ScrollRow = 87
ActiveWindow.ScrollRow = 260
ActiveWindow.ScrollRow = 347
ActiveWindow.ScrollRow = 606
ActiveWindow.ScrollRow = 865
ActiveWindow.ScrollRow = 1038
ActiveWindow.ScrollRow = 1384
ActiveWindow.ScrollRow = 1729
ActiveWindow.ScrollRow = 2075
ActiveWindow.ScrollRow = 2507
ActiveWindow.ScrollRow = 2939
ActiveWindow.ScrollRow =
.
.
.
.
ActiveWindow.ScrollRow = -11875
ActiveWindow.ScrollRow = -11616
Range("D2:D53957").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("D1").Select
ActiveWindow.ScrollRow = 174
ActiveWindow.ScrollRow = 260
.
.
.
ActiveWindow.ScrollRow = -11616
Range("D1:D53957").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Columns("E:E").Select
Selection.Insert Shift:=xlToRight
Range("E1").Select
ActiveCell.FormulaR1C1 = _
"=DATE(LEFT(RC[-1],4),MID(RC[-1],5,2),RIGHT(RC[-1],2))"
Range("E1").Select
Selection.Copy
Range("E2").Select
ActiveWindow.ScrollRow = 87
ActiveWindow.ScrollRow = 174
.
.
ActiveWindow.ScrollRow = -11616
Range("E2:E53957").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Columns("E:E").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Columns("C:D").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
End Sub