Bonsoir,
Merci de vos remerciements !
Mais la perfection n'est pas de ce monde !
Ci dessous un nouveau code avec l'ajout d'un interrupteur qui détecte la mise à jour du TextBox1, afin que le code ne soit pas joué deux fois de suite...
Une variable longueur TextBox1 afin de détecter une modification de la date en lettre, ce qui a pour effet de l'effacer complètement.
Option Explicit
Dim TextBox1_OK As Boolean ' interrupteur date en lettre = TRUE
Dim En_cours As Boolean ' interrupteur saisie en cours = TRUE
Dim TextBox1_Len As Byte ' mise en mémoire de la longueuer de la date en lettre pour tester si modification
Private Sub TextBox1_Change()
If En_cours = False Then
Dim valeur As Byte
valeur = Len(TextBox1.Value)
If TextBox1_OK = True And valeur <> TextBox1_Len Then
En_cours = True
TextBox1.Value = ""
En_cours = False
TextBox1_Len = 0
TextBox1_OK = False
End If
If TextBox1_OK = False Then
If valeur = 2 Or valeur = 5 Then
En_cours = True
TextBox1.Value = TextBox1.Value & "/"
En_cours = False
ElseIf valeur = 10 And TextBox1_OK = False Then
TextBox1_OK = True
En_cours = True
TextBox1.Value = Format(TextBox1.Value, "DD MMMM YYYY")
TextBox1_Len = Len(TextBox1.Value)
En_cours = False
End If
End If
End If
End Sub
Là on se rapproche de la perfection
Mais les Dieux du VBA de ce site vous trouverons quelque chose de bien plus propre !
@ bientôt
LouReeD