XL 2016 Test si TextBox rempli par date correcte

Lorenzini

XLDnaute Occasionnel
Bonjour à tous :),

J'ai un formulaire dans lequel j'ai 2 textbox.
Ces 2 TextBox sont censés accueillir des dates au format prédéfini "jour/mois/année" (JJ/MM/AAAA).
Comme je ne suis pas expert, je me suis aidé de bout de codes trouvé par-ci par-là sur le web.
Ainsi p.ex, j'apprécie que lorsque l'utilisateur tape 32 comme jour : impossible d'avancer plus loin avant d'avoir corrigé.
Même logique pour les mois : lorsque l'utilisateur tape 13, impossible d'avancer plus loin avant d'avoir corrigé.
Dans la suite de mes idées, je voulais programmer ceci (çà à l'air peut-être simple mais je vous assure que pour mon niveau, j'en attrape des cheveux blancs !) :
Lorsque le 1er TextBox est complet, qu'il passe au second et lorsque le second est complet, qu'il vérifie si le premier l'était (hisoire de vérifier si l'utilisateur n'a rempli que le deuxième ?) et si c'est le cas (que les 2 textbox sont COMPLET), alors : que le commandbutton1 du formulaire soit sur enabled = true, j'envoie la commande sendkeys ; le formulaire voit sa taille augmetée, les résultats affichés... tout beau tout propre... sauf que galère !
Je voulais bloquer la touche [ENTER] si le textbox n'est pas complètement rempli.
Je n'y parviens tout simplement pas. :s
Autre curiosité que je ne parviens pas à résoudre : lorsqu'on clique sur retour arrière ; çà fonctionne dans le textbox1 et pas le textbox2 !?
Par exemple, je tape (dans le textbox1) : 23/04/202... j'efface, je me suis trompé, je voulais taper : "22/04/2023" --> pas de problème lorsqu'ensuite je valide par la touche [ENTER].
Si je fais strictement la même chose dans le textbox2...p.ex. je tape 23/04/202... j'efface, je me suis trompé, je voulais taper : "22/04/2023" --> lorsqu'à ce stade je valide par la touche [ENTER], rien ne se passe (alors même que les 2 textbox sont complet, valide... !?).
Est-ce que quelqu'un pourrait m'aider ? Je peux reformuler si vous trouvez que je n'ai pas été assez clair.
Je vous remercie pour votre attention.
 

Pièces jointes

  • Imprimerie Economat V4.xlsm
    456.1 KB · Affichages: 4

Dranreb

XLDnaute Barbatruc
Bonsoir.
Pour limiter les erreurs il est aussi possible d'utiliser un petit calendrier.
je vous propose mon dernier modèle qui permet aussi de saisir l'heure.

Important: pour affecter aux cellules les textes issus de contrôles convertis en dates, utilisez la fonction CDate. Parce qu'en y envoyant les textes, c'est Excel qui s'occupe de la conversion, mais vu que ça vient d'une macro, en y appliquant une interprétation anglo-saxonne, avec jour et mois pouvant être intervertis.
 

Pièces jointes

  • SaisieDateHeure.xlsm
    78.5 KB · Affichages: 13

Lorenzini

XLDnaute Occasionnel
Bonsoir.
Pour limiter les erreurs il est aussi possible d'utiliser un petit calendrier.
je vous propose mon dernier modèle qui permet aussi de saisir l'heure.

Important: pour affecter aux cellules les textes issus de contrôles convertis en dates, utilisez la fonction CDate. Parce qu'en y envoyant les textes, c'est Excel qui s'occupe de la conversion, mais vu que ça vient d'une macro, en y appliquant une interprétation anglo-saxonne, avec jour et mois pouvant être intervertis.
Waouw ! Alors là Dranreb ! Chapeau pour votre travail, j'en prends plein la vue et je vais tâcher de m'en instruire :) C'est vraiment du super beau boulot ; j'admire ! 👍 🧐
Merci pour les tuyaux ! :)
J'apprends aussi avec la fonction CDate ; vraiment, merci Dranreb !
 

Lorenzini

XLDnaute Occasionnel
Bonsoir.
Pour limiter les erreurs il est aussi possible d'utiliser un petit calendrier.
je vous propose mon dernier modèle qui permet aussi de saisir l'heure.

Important: pour affecter aux cellules les textes issus de contrôles convertis en dates, utilisez la fonction CDate. Parce qu'en y envoyant les textes, c'est Excel qui s'occupe de la conversion, mais vu que ça vient d'une macro, en y appliquant une interprétation anglo-saxonne, avec jour et mois pouvant être intervertis.
...je suis bluffé par la petite horloge que vous avez inséré (en bas à gauche) dans votre calendrier ! :cool:
 

Lorenzini

XLDnaute Occasionnel
Bonsoir.
Pour limiter les erreurs il est aussi possible d'utiliser un petit calendrier.
je vous propose mon dernier modèle qui permet aussi de saisir l'heure.

Important: pour affecter aux cellules les textes issus de contrôles convertis en dates, utilisez la fonction CDate. Parce qu'en y envoyant les textes, c'est Excel qui s'occupe de la conversion, mais vu que ça vient d'une macro, en y appliquant une interprétation anglo-saxonne, avec jour et mois pouvant être intervertis.
Je vais tacher de me servir de votre calendrier (vraiment Tip-Top !)...
Dès que l'utilisateur cliquera dans le 1er TextBox, votre calendrier servira à choisir une date (qui sera la date de départ à partir de laquelle compter).
En cliquant ensuite dans le second TextBox, l'appartition de votre calendrier servira à choisir la date d'arrivée (si je peux l'appeller comme çà).
Avec CDate, je récupère les infos en cellules, je lui demanderai de faire la différence (avec DateDif) et ce sera parfait !
Vraiment Merci Dranreb ! Super boulot !
Je vais tâcher de me débrouiller pour la suite. :) J'aime beaucoup ce vous avez fait!
 

Lorenzini

XLDnaute Occasionnel
Je me suis amusé à le faire, avec de tout petits ajustements dans ce nouveau calendrier, encore un peu en rodage …
wo lala ! J'étais justement en train d'examiner votre code... franchement, j'ai beaucoup de respect car j'arrive à comprendre qq bribes mais j'ai encore bien à apprendre. Votre travail est vraiment une source d'inspiration (vous êtes développeur ? ou professeur ?)... peu importe, vraiment, respect pour le travail et du coup, je viens de voir le travail que vous venez déjà d'affecter à mon bouton et mon UserForm ! et... OUI ! :D😁👍 c'est bien quelquechose comme vous venez de proposer que je souhaitais bricoler (j'avoue que j'étais en train de me dire "avec l'heure en moins") pour ce travail-çi en tout cas (les dates me suffisent ici). Car l'heure reste intéressante mais je la garde d'ores et déjà pour un autre de mes travaux 😁.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
J'ai trouvé un bogue sur mon calendrier, qui se manifeste lorsque le dernier jour du mois est un lundi. Je l'ai constaté en arrivant en JUIN 2025.
C'est réparé dans cette version.
 

Pièces jointes

  • CalendHeureLorenzini.xlsm
    459.7 KB · Affichages: 8

Lorenzini

XLDnaute Occasionnel
Bonjour.
J'ai trouvé un bogue sur mon calendrier, qui se manifeste lorsque le dernier jour du mois est un lundi. Je l'ai constaté en arrivant en JUIN 2025.
C'est réparé dans cette version.
Bonjour 🙂,
Depuis que vous m'avez transmis le fichier, un peu tout les jours, je me penche dessus pour décrypter les codes qui y sont associés... et confirmation, vraiment wow ! beau boulot !
Je prends avec plaisir la dernière version que vous avez gentiment fait et corrigée... je suis en train de l'adapter à mes besoins (enfin, d'essayer en espérant y arriver ! :eek::rolleyes:🤔:oops:o_O)
Merci merci pour vos efforts !! 👍😁
 

Dranreb

XLDnaute Barbatruc
Vous pouvez toujours me demander des précisions sur certains détails que vous avez du mal à comprendre …
De quelle adaptation auriez-vous besoin ? Il ne propose pas d'emblée la saisie de l'heure !
Cela apporterait-il vraiment quelque chose de rendre invisible l'ImgAffPlus pour empêcher l'affichage du volet heure ?
 

Lorenzini

XLDnaute Occasionnel
Vous pouvez toujours me demander des précisions sur certains détails que vous avez du mal à comprendre …
De quelle adaptation auriez-vous besoin ? Il ne propose pas d'emblée la saisie de l'heure !
Cela apporterait-il vraiment quelque chose de rendre invisible l'ImgAffPlus pour empêcher l'affichage du volet heure ?
Vraiment, Vraiment, VRAI-MENT, je vous promets, votre fichier, ... !!
Trop TROP FORT !
Ah je suis dessus depuis ce matin (quasi) non-stop et c'est une vraie mine d'or, je ne fais qu'apprendre 😋
 

Pièces jointes

  • CalendHeureLorenziniCORRIGE_V1.xlsm
    711.4 KB · Affichages: 1

Lorenzini

XLDnaute Occasionnel
Vous pouvez toujours me demander des précisions sur certains détails que vous avez du mal à comprendre …
De quelle adaptation auriez-vous besoin ? Il ne propose pas d'emblée la saisie de l'heure !
Cela apporterait-il vraiment quelque chose de rendre invisible l'ImgAffPlus pour empêcher l'affichage du volet heure ?
Avec cette formule dans le code, j'ai du mal à comprendre et les parenthèses m'embrouillent un peu en fait...

Private Sub TBxJusquAu_Change()
...
LabJousrEcart.Caption = Int(Fin + -(Int(Fin) = Fin) - Début + 0.5)
...

Et puis surtout, je ne comprends pas le "+0.5" ; à quoi correspond-il ? 🤔
Pouvez-vous m'apporter qq éclaircissements sur cette formule ?

Merci !
 

Discussions similaires

Réponses
16
Affichages
728

Statistiques des forums

Discussions
315 098
Messages
2 116 190
Membres
112 679
dernier inscrit
Yupanki