Textbox et le format "date"

Bonjour,

Je sollicite votre aide pour une problématique que je n'arrive pas a résoudre

J'ai dans ma Userform une TextBox qui va faire office de date au format classique JJ/mm/aaaa (29/09/2016)

Pour le moment j'ai réussi a effectuer les petite fonctionnalité suivante :

1 - Mise en forme automatique des "/" directement lors de la saisie avec le code suivant

Private Sub DATE_SINISTRE_Change()

'Déclaration et mise en "forme" des variable de travail

Dim Valeur As Byte

' DATE_SINISTRE.MaxLength = 10 'nb caractères maxi autorisé dans le textbox

Valeur = Len(DATE_SINISTRE)

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

End Sub

2 - Faire en sorte de sisir uniquement des chiffre avec le code suivant

Private Sub DATE_SINISTRE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

DATE_SINISTRE.MaxLength = 10 'nb caractères maxi autorisé dans le textbox

With CreateObject("VBScript.RegExp")

.Pattern = "^\d*$"

.IgnoreCase = True

If Not .Test(DATE_SINISTRE.Value & Chr(KeyAscii)) Then KeyAscii = 0: Beep

End With

Je souhaiterais au final que l'utilisateur puisse saisir que des chiffre et effectuer une mise en forme automatique de ma date avec les / (mise en forme pendant ou après la saisie de la date)

Pourriez-vous m'aider dans cette problématique ?

d'avance merci à vous

bonjour

essayer ca :

Option Explicit

Private Sub DATE_SINISTRE_Change()
If Len(DATE_SINISTRE.Value) = 2 Or Len(DATE_SINISTRE.Value) = 5 Then
'SendKeys "/", False
End If
End Sub

Private Sub DATE_SINISTRE_KeyPress(ByVal KeyCode As _
MSForms.ReturnInteger)
If Chr(KeyCode) = 0 Or Chr(KeyCode) = 1 Or Chr(KeyCode) = 2 Or Chr(KeyCode) = 3 Or Chr(KeyCode) = 4 _
Or Chr(KeyCode) = 5 Or Chr(KeyCode) = 6 Or Chr(KeyCode) = 7 Or Chr(KeyCode) = 8 Or Chr(KeyCode) = 9 _
Or Chr(KeyCode) = "/" Or Chr(KeyCode) = "-" Then
If Len(DATE_SINISTRE.Value) = 2 Or Len(DATE_SINISTRE.Value) = 5 Then
 DATE_SINISTRE.Value = DATE_SINISTRE.Value & "/"
End If
Else
If Len(DATE_SINISTRE.Value) < 10 Then Beep: SendKeys "{BACKSPACE}", False
End If
End Sub

Private Sub UserForm_Initialize()
DATE_SINISTRE.MaxLength = 10 ' ou mettre dans la case de MaxLength sur propreités
End Sub

Bonjour,

Je vais répondre tardivement, je n'avais pas eu le temps de tester ta solution.

Merci AMIR !!! ça correspond a ce que je souhaitais faire !!!

Je vais essayer maintenant de mettre en place des contrôles du type :

* Ne pas saisir une date supérieur à la date du jour

* Saisir un "mois" compris entre 01 et 12

* Saisir un "jour" compris en 01 et 29/30/31 en fonction du mois saisie dans la date

Si vous avez des conseil tuyaux etc pour faire cela je suis preneur

d'avance merci

Rechercher des sujets similaires à "textbox format date"