Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - Vérifier la saisie d'une date dans TextBox

  • Initiateur de la discussion Initiateur de la discussion Blueangel
  • 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 !

B

Blueangel

Guest
Bonsoir à tous,

Je recherche un moyen de vérifier la saisie d'une date dans un textBox en VBA (avec : jour = 30, 31, 28 ou 29, 1<mois<12).
J'ai déjà un algorithme pour savoir si une année est bissextile ou pas :

Cijoint.fr - Service gratuit de dépôt de fichiers

Est-ce que quelqu'un pourrait m'aider ?
Merci
@+
Blueangel
 
Re : VBA - Vérifier la saisie d'une date dans TextBox

bonjour,
Sujet intéressant. Je suis intéressé. toutefois, si je fais une erreur de saisie (en saisissant 215 au lieu de 2015, ce que j'ai fait par erreur) la macro plante.
A suivre.
 
Re : VBA - Vérifier la saisie d'une date dans TextBox

Voilà un exemple avec la vérif du format date.
Par contre, après avoir fait OK, il est possible de naviguer quand même dans le formulaire (avec la date erronée) !
Comment obliger l'utilisateur à modifier sa saisie ?
@+
 

Pièces jointes

Re : VBA - Vérifier la saisie d'une date dans TextBox

Bonjour Bleuangel,

Dans la première version de fichier que je t'ai donné, il y avait une gestion de l'évènement BeforeUpdate pour obliger l'utilisateur à saisir une date correcte. Comme te l'as dis Yann🙂 il faut savoir fouiller et je rajouterai, tester, se tromper recommencer etc. Car si on te donnes toujours la solution dans deux ans tu poseras les mêmes question.

A+
 
Re : VBA - Vérifier la saisie d'une date dans TextBox

Re,
Pour contourner l'obstacle si l'année est inférieure à 4 caractères, j'ai compléter le module 1 par un test sur la longueur totale dans le fichier de Hasco : h_Vérif Date.xls (44,0 Ko, 5 affichages)
J'ai aussi compléter l'userform1 d'un commandbutton pour tester une mise à jour dans une cellule (A1) : là un nouveau problème arrive. Une date dont le jour est inférieur à 12 et le mois inférieur à 12 , il y a inversion dans la cellule A1. Ainsi, une saisie 11/10/2011 sera transcrite 10/11/2011
Je n'ai pas encore trouvé la solution. Peu-être, avez-vous une solution
Merci
 
Re : VBA - Vérifier la saisie d'une date dans TextBox

Merci Jean Marcel pour ton intervention

J'avais rajouté dans le fichier de Hasco (h_Vérif Date.xls page 1 de ce post) un commandbutton1_click avec comme seule instruciton cells(1,1)=Textbox1.value. Un rajout du format "DD/MM/YYYY" n'y changeait rien

J'ai modifié le format sous la forme "MM/DD/YYYY" dans mon code (Et là, miracle, ça marche)

Private Sub CommandButton1_Click()

Cells(1, 1) = Format(TextBox1.Value, "MM/DD/YYYY")
End Sub

Merci
 
Re : VBA - Vérifier la saisie d'une date dans TextBox

Bonjour BlueAngel,
Jean-Marcel🙂

Je ne sais pas de quoi tu parles mais la fonction que je t'ai donnée qui renvoie true ou false suivant qu'un texte au format '00/00/0000' représente une date valide ou non, fonctionne même appelé à partir d'une cellule.

Code:
Public Function VerifDate(ByRef la_date As String) As Boolean
    'Retourne vrai si le texte la_date au format '00/00/0000' est bien une valeur de date
    '31/02/2011 -> Faux 28/02/2011 ->vrai
    Dim t: t = Split(la_date, "/")
    If UBound(t) < 2 Or UBound(t) > 2 Or Len(la_date) < 10 Then Exit Function
    VerifDate = CStr(DateSerial(Val(t(2)), Val(t(1)), Val(t(0)))) = la_date
End Function

Pour le reste je ne t'ai pas fourni de code qui modifie une cellule. Mais avant de passer ta date au format texte (en provenance d'un textBox) à une cellule, convertit la en Date (numérique) par Cdate.

Code:
Range("A1")=Cdate(TextBox1.Text)

Sinon effectivement Vba la comprend comme une date au format US.

A+
 
Re : VBA - Vérifier la saisie d'une date dans TextBox

Re,

Merci Hasco pour le format Cdate.
Pour ce qui est du format US, il fait quand même un peu ce qu'il peut : 12/10 est transformé en 10/12 alors que 25/10 reste 25/10.
L'essentiel, c'est d'avoir la bonne solution
Encore Merci
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
430
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…