Convertir une date jjmmaaaa en jj/mm/aaaa

Résolu/Fermé
Utilisateur anonyme - 17 juin 2010 à 10:46
 Utilisateur anonyme - 17 juin 2010 à 16:15
Bonjour

Je voudrai sous Excel pouvoir écrire les dates plus rapidement. Je voudrai que lorsque l'on tape 17062010 on obtienne 17/06/2010.
J'ai trouvé la macro suivante dans un autre forum qui avait été faite pour un UserForm. Je n'arrive pas à la modifier afin qu'elle marche pour des valeurs saisies dans des cellules d'un fichier Excel, en colonne I par exemple.

Private Sub TextBox1_Keyup(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Z = (TextBox1.Value)
If Len(Z) = 2 Then TextBox1.Value = Z & "/"
If Len(Z) = 5 Then TextBox1.Value = Z & "/"
If Len(Z) = 10 Then
If IsDate(Z) Then MsgBox "Bravo"
End If
End Sub

Pourriez-vous m'aider s'il vous plaît.

Laure

14 réponses

Utilisateur anonyme
17 juin 2010 à 11:02
Bonjour,

Voici un petit bout de code qui devrait répondre à ta question :

Tu déclenche sur l'évènement change de ta TextBox1 :

Dim MaDate as String

MaDate = CStr(TextBox1.value)
If Len(MaDate) < 8 Then Exit Sub

Textbox1.value = DateSerial(Right(MaDate, 4), Left(Right(MaDate, 6), 2), Left(MaDate, 2))


Attention : ça ne marche que si la date que tu saisis contient 8 caractères (2 pour le jour, 2 pour le mois et 4 pour l'année) !

Manu
1