VBA Excel - Date dans Textbox - Evenement KeyPress

talined Messages postés 44 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 14 mars 2012 - 22 janv. 2012 à 15:15
 Utilisateur anonyme - 22 janv. 2012 à 17:04
Bonjour!

Sous VBA Excel, je souhaite creer une textbox et la paramétrer en format date de type dd/mm/yyyy
Jusqu'ici, le code est assez simple..

Sauf que je voudrais que ma textbox soit déclenché par l'évenement Keypress..
Autrement dit, lors de la saisie, si l'utilisateur ne respecte ni le format "dd/mm/yyyy", ni les caractères numériques, Alors on bloque la saisie..

Quelqu'un aurait-il une idée??

Merci!

5 réponses

Utilisateur anonyme
22 janv. 2012 à 16:12
Pourquoi ne pas faire quelque chose du genre:
Private Sub TextBox2_Change()
If Len(TextBox2.Text) = 2 Then
   If Val(TextBox2.Text) > 31 Or Val(TextBox2.Text) < 1 Or IsNumeric(TextBox2.Text) = False Then
      TextBox2.Text = ""
   Else
      TextBox2.Text = TextBox2.Text & "/"
   End If
End If
If Len(TextBox2.Text) = 5 Then
   If Val(Right(TextBox2.Text, 2)) > 31 Or Val(Right(TextBox2.Text, 2)) < 1 Or IsNumeric(Right(TextBox2.Text, 2)) = False Then
      TextBox2.Text = ""
   Else
      TextBox2.Text = TextBox2.Text & "/"
   End If
End If
End Sub



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
22 janv. 2012 à 16:15
Ou plutôt:
Private Sub TextBox2_Change()
If Len(TextBox2.Text) = 2 Then
   If Val(TextBox2.Text) > 31 Or Val(TextBox2.Text) < 1 Or IsNumeric(TextBox2.Text) = False Then
      TextBox2.Text = ""
   Else
      TextBox2.Text = TextBox2.Text & "/"
   End If
End If
If Len(TextBox2.Text) = 5 Then
   If Val(Right(TextBox2.Text, 2)) > 31 Or Val(Right(TextBox2.Text, 2)) < 1 Or IsNumeric(Right(TextBox2.Text, 2)) = False Then
      TextBox2.Text = Left(TextBox2.Text, 3)
   Else
      TextBox2.Text = TextBox2.Text & "/"
   End If
End If
End Sub



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
talined Messages postés 44 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 14 mars 2012
22 janv. 2012 à 16:33
Merci bcp!

Cependant, il y a 3 petites choses qui ne fonctionnent pas :

- On peut rentrer n'importe quelle lettre pour le premier caractère
- On peut insérer 2 slash après le jour
- On peut rentrer n'importe quel caractère et autant de fois que l'on veut après le 2eme slash (Année).

Merci.
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
22 janv. 2012 à 16:53
Bonjour,
Pourquoi te casser la tête alors que mon "frère jumeau" jmfmarques a déposé un source à ce sujet ?
Regarde et prends ce qui te convient dans CE SOURCE qui va plus loin encore (saisie assistée en différents formats)



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
22 janv. 2012 à 17:04
Mais... talined:

Tu ne veux pas qu'on te fasse tout carrément?

Il faut quand même te laisser quelque chose à faire, sinon tu vas le prendre comme une mauvaise habitude...




Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0