Problème de date

Anthony

XLDnaute Nouveau
Bonjour à tous,

Grâce à l'aide du forum, j'ai déjà appris beaucoup, malheureusement, je n'arrive pas à résoudre un petit pb que je vous soumets.

A partir d'un userform, je fais une requête me permettant d'aller chercher l'ensemble des mvts réalisés entre 2 dates.
Pour cela, j'ai bloqué la saisie des userforms avec la formule suivante :

Private Sub TextBox1_Change()
If Len(TextBox1) = 2 Or Len(TextBox1) = 5 Then _
TextBox1 = TextBox1 & "/"
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub

De plus, lorsque je valide ma requête à l'aide d'un bouton, voici le morceau de code vba que j'ai utilisé pour que le format de date soit reconnu:

Dim a As Date, c As Date
a = CDate(TextBox1.Text)
c = CDate(TextBox2.Text)

If Not IsDate(TextBox1.Text) Then
MsgBox " Attention, la date entrée n'est pas valide", vbOKOnly + vbExclamation, "Erreur de saisie"
With TextBox1
.Value = ""
.SetFocus
End With
Else
If Not IsDate(TextBox2.Text) Then
MsgBox " Attention, la date entrée n'est pas valide", vbOKOnly + vbExclamation, "Erreur de saisie"
With TextBox2
.Value = ""
.SetFocus
End With
Else

Tout cela marche plutôt bien sauf dans un cas de figure :

Lorsque l'utilisateur se trompe et entre une date qui n'existe pas (du type 31/04/07), il n'y a pas de message d'erreur mais la date prise en compte est le 07/04/1931!!!! Il semblerait que le jour et l'année soit inversé.
Je voudrais qu'un message d'erreur apparaisse, pouvez-vous m'aider?

Merci d'avance
Anthony
 

Pierrot93

XLDnaute Barbatruc
Re : Problème de date

Bonjour Anthony

une autre solution, peut être rendre obligatoire la saisie de l'année sous 4 caractères en modifiant le code comme ci dessous :

Code:
If Len(TextBox1) = 2 Or Len(TextBox1) = 5 Then _
TextBox1 = TextBox1 & "/20"

bon après midi
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 504
Messages
2 089 073
Membres
104 019
dernier inscrit
pascal la