vérifier la validité d'une date saisie dans un textbox

  • Initiateur de la discussion Initiateur de la discussion sri75
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sri75

XLDnaute Occasionnel
bonjour, j'utilise un textbox pour entrer une date et je voudrais pouvoir vérifier que la date est bien saisie au format jjmmyyyy et est valide.

A ma grande surprise si j'utilise la fonction cdate, ma date saisie 12/14/2009 se transforme en 14/12/2009 automatiquement.

Merci de me donner votre avis sur la façon d'optimiser ce controle
 
Re : vérifier la validité d'une date saisie dans un textbox

Bonsoir sri75,

Vous parlez bien du format jjmmaaaa n'est-ce pas, alors par exemple cette macro :

Code:
Private Sub CommandButton1_Click()
Dim mois As Byte, d As Date
On Error Resume Next
mois = Mid(TextBox1, 3, 2)
d = Left(TextBox1, 2) & "/" & mois & "/" & Right(TextBox1, 2)
If Err Or mois > 12 Then MsgBox "Date non valide": Exit Sub
[A1] = d
End Sub

A+
 
Dernière édition:
Re : vérifier la validité d'une date saisie dans un textbox

merci pour le code mais je ne vois pas comment l'adapter , voila mon fichier pourriez vous y jeter un coup d'oeil ?

Merci d'avance
 

Pièces jointes

Re : vérifier la validité d'une date saisie dans un textbox

Bonsoir,

Dans le code précédent, je ne me préoccupais pas de la longueur du texte entré dans la TextBox, voilà qui est corrigé :

Code:
Private Sub CommandButton1_Click()
Dim mois As Byte, d As Date
On Error Resume Next
[COLOR="Red"]If Len(TextBox1) = 4 Then TextBox1 = TextBox1 & Year(Date)[/COLOR]
mois = Mid(TextBox1, 3, 2)
d = Left(TextBox1, 2) & "/" & mois & "/" & Right(TextBox1, 2)
If Err Or mois > 12  [COLOR="red"]Or Len(TextBox1) <> 8[/COLOR] Then MsgBox "Date non valide": Exit Sub
[A1] = d
End Sub

Je n'irai pas plus loin car l'adaptation à une TextBox quelconque est évidente 😉

A+
 
Dernière édition:
Re : vérifier la validité d'une date saisie dans un textbox

Bonjour, je tente d'integrer le code sous cette forme mais j'ai une erreur dès que je tape le 1er caractère; de plus je ne comprends pas comment il ne peut y avoir de end if.

Pourriez vous m'éclairer ?

Private Sub TextBox2_Change()

Dim mois As Byte, d As Date
On Error Resume Next
If Len(TextBox2) = 4 Then TextBox2 = TextBox2 & Year(Date)
mois = Mid(TextBox2, 3, 2)
d = Left(TextBox2, 2) & "/" & mois & "/" & Right(TextBox2, 2)
If Err Or mois > 12 Or Len(TextBox2) <> 8 Then MsgBox "Date non valide":
Cancel = True
Exit Sub
[A1] = d

Range("d5") = CDate(TextBox2)

toto '( ma macro )


End Sub
 
Re : vérifier la validité d'une date saisie dans un textbox

Bonjour,
J'ai bidouillé directement dans le fichier
Voir les macros en Textbox2
J'ai ajouté module1 pour afficher l'userform.
Bon test
Bruno
 

Pièces jointes

Re : vérifier la validité d'une date saisie dans un textbox

Bonjour et merci pour ce code qui semble adapté à mes souhaits.

dans la partie key-press j'ai rectifié

If Len(TextBox1) = 10 Then KeyAscii = 0 en

If Len(TextBox2) = 10 Then KeyAscii = 0

ais je bien fait ?


Par contre, une fois la date testée, je ne trouve pas où il faut que j'insere la commande qui va inserer le date dans la cellule d5.

J'ai vu dans le code qu'un msgbox d'erreur était prévu mais qu'il ne s'affichait pas.

Autre point technique pour tester la macro en pas à pas comment faire pour faire s'executer la deuxième partie key_up

Merci beaucoup pour votre aide précieuse
 
Re : vérifier la validité d'une date saisie dans un textbox

revoici le fichier corrigé,
pour le pas à pas, rajoute ces lignes

If Len(TextBox2) = 5 Then
beep
end if

mets le point d'arret sur beep
comme cela la macro s'arrete si 5 chiffres que tu peux changer
ensuite tu effaces ces lignes

Bruno
 

Pièces jointes

Re : vérifier la validité d'une date saisie dans un textbox

merci c'est parfait, il me reste une question, est il possible de faire apparaitre des chiffres avec des séparateurs de milliers dans le userform ?


merci d'avance
 
Dernière édition:
Re : vérifier la validité d'une date saisie dans un textbox

re:
pour le format d'un textbox en texbox_change
Textbox1=format(textbox1,"# ###")

Dans ce fichier j'ai rajouté un controle DtPicker
Je ne sais pas si tu pourras l'ouvrir car cela dépend si ce controle est installé sur les PC
Je l'ai mis dans ce fichier pour ne pas passer à coté car trés efficace
Bruno
 

Pièces jointes

Re : vérifier la validité d'une date saisie dans un textbox

Voila la version quasi finale du produit, sans dtpicker car malheureusement je ne peux le mettre car trop de gens n'ont pas ce type de module installé.

Une dernière question avant le week end, je voudrais mettre un controle sur les textbox 1 2 et 3 afin que l'on soit obligé de saisir une donnée avant de passer au textbox suivant.

merci encore car sans toi je n'y serais jamais arrivé
 

Pièces jointes

Re : vérifier la validité d'une date saisie dans un textbox

re:
je ferais comme ceci...

Code:
Private Sub TextBox2_Enter()
If TextBox1 = "" Then TextBox1.SetFocus
End Sub
Private Sub TextBox3_Enter()
If TextBox1 = "" Then TextBox1.SetFocus: Exit Sub
If TextBox2 = "" Then TextBox2.SetFocus
End Sub

A+
Bruno
 
Re : vérifier la validité d'une date saisie dans un textbox

Merci c'est effectivement comme ça que j'ai procédé.

Si je peux encore abuser de ton temps et de tes connaissances je me suis rndu compte que j'avais oublié un paramètre qui est que les deux textbox (3 et 4 ) qui demande un taux d'amortissement peuvent recevoir des taux avec une virgule.

actuellement si je tapes 3.5 ou 3,5 ca bloque tout j'ai essayé une commande val(replace ) mais je n'obtiens qu'une erreur vba.

merci pour ton aide une fois de plus
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour