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
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