Transformation Texte en Date

Bonjour,

Je suis débutant dans VBA sous Excel2010.

Je me suis créé un formulaire de saisie qui marche très bien. Merci Excel-Pratique et tous ses membres

Je bute sur un problème sur la saisie de date. Ci-dessous le code de cette saisie. J'ai voulu saisir à la volée les chiffres et que le / ce met automatiquement. Visuellement c'est correcte mais ce n'est que du texte et non un format date donc ensuite je ne peu pas gérer des dates.

Est-ce qu'une bonne Hamme peu me donner un coup de main, svp, pour me modifier mon code ?

Je ne suis peut-être pas parti sur la bonne solution de saisie.

'Saisie de la Date

Private Sub TextBox1_Change()

'Format xx/xx/xxxx

Dim Valeur As Byte

TextBox1.MaxLength = 10 'nb caracteres maxi dans textbox

Valeur = Len(TextBox1)

If Valeur = 2 Or Valeur = 5 Then TextBox1 = TextBox1 & "/"

[A2] = TextBox1

End Sub

Merci d'avance

Bonjour,

Je ne suis pas expert, et je pense que tu auras d'autres propositions.

Essaie :

Private Sub TextBox1_Change()
'Format xx/xx/xxxx
Dim Valeur As Byte
    TextBox1.MaxLength = 10
    Valeur = Len(TextBox1)
    If Valeur = 2 Or Valeur = 5 Then TextBox1 = TextBox1 & "/"
    If Len(TextBox1) = 10 Then
        [A2] = CDate(TextBox1)
        'TextBox1.Value = vbNullString
    End If
End Sub

Merci Jean-Eric pour ta rapide réponse

Tu n'es pas expert mais plus que moi en tout cas.

ça marche très bien, un grand merci.

Maintenant, comme tu dis, si quelqu'un a un autre code, je suis toujours preneur.

Comme pour contrôler si c bien une date valide, ...

En attendant encore merci Jean-Eric, je vais pouvoir avancer dans mon petit développement.

Re,

A tester et à optimiser par un tiers.

Cdlt.

Option Explicit

Private Sub TextBox1_Change()
'Format xx/xx/xxxx
Dim Valeur As Byte
    TextBox1.MaxLength = 10
    Valeur = Len(TextBox1)
    If Valeur = 2 Or Valeur = 5 Then TextBox1 = TextBox1 & "/"
    If Len(TextBox1) = 10 Then
        On Error Resume Next
        If Not IsDate(CDate(TextBox1)) Then
            MsgBox "Date invalide", vbOKOnly + vbCritical
            TextBox1.Value = vbNullString
        Else
            [A2] = CDate(TextBox1)
            TextBox1.Value = vbNullString
        End If
    End If
End Sub

ça me contrôle bien la date, ça me l'insert bien dans la bonne cellule mais dans mon formulaire je reste sur le même champ de saisie.

Je boucle sur la saisie de date.

Rechercher des sujets similaires à "transformation texte date"