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

Membres actuellement en ligne

Statistiques des forums

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