Modifier une date en anglais (texte) en format date classic

Guigui

XLDnaute Occasionnel
Bonjour,

voici mon probleme :

j'ai une liste qui contient en format texte des "dates"

Mon 31.10
Tue 01.11
Thu 03.11
Sat 05.11
Sun 06.11
Mon 07.11

J'essaie en VBA de les transformer en date classique (format) mais en vain.

J'imagine qu'il faut utiliser les chiffres (à isoler) pour reconstruire une date mais je n'y arrive pas

mid(A1,5,2) & "/" & mid(A1,8,2) & "/" & 2011

Avez vous une idée ?

Merci par avance.

Guillaume
 

JNP

XLDnaute Barbatruc
Re : Modifier une date en anglais (texte) en format date classic

Bonjour Guigui, Hasco :)
Code:
Sub test()
Dim I As Integer
For I = 1 To 6
Range("B" & I) = CDate(Mid(Range("A" & I), 5, 2) & "/" & Mid(Range("A" & I), 8, 2) & "/2011")
Next I
End Sub
Bonne soirée :cool:
 

Efgé

XLDnaute Barbatruc
Re : Modifier une date en anglais (texte) en format date classic

Bonjour à tous,
En retard mais deux autres versions:
VB:
Sub test()
Dim i&
For i = 1 To 6
         Cells(i, 2) = DateSerial(2011, Right(Cells(i, 1), 2), Mid(Cells(i, 1), 5, 2))
Next i
End Sub

VB:
Sub test2()
Dim i&
For i = 1 To 6
         Cells(i, 3) = DateSerial(2011, Split(Cells(i, 1), ".")(1), Right(Split(Cells(i, 1), ".")(0), 2))
Next i
End Sub
Cordialement

EDIT
Juste pour le plaisir
VB:
Sub test3()
Dim i&, T As Variant, P As Variant
With Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
    P = .Value
    For i = LBound(P) To UBound(P)
        T = Split(Split(P(i, 1))(1), ".")
        P(i, 1) = DateSerial(2011, T(1), T(0))
    Next i
    .ClearContents
    .NumberFormat = "dddd dd mmmm yyyy"
    .Value = P
End With
End Sub
Cordialement
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 327
Membres
103 517
dernier inscrit
hbenaoun63