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

Bloquer evenement userform

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

cathodique

XLDnaute Barbatruc
Bonsoir🙂,

Je voudrais vérifier les codes saisis dans la textbox1, il faut qu'ils aient 4 chiffres et commencer par 8 ou 9
par rapport aux boutons d'option (Débit actif m=8 sinon m=9).
Un message avise l'utilisateur dans le cas où le code est non conforme aux conditions.
Cependant, l'utilisateur pourrait changer d'avis après avoir saisi un code, et vouloir fermer l'userform.
Le message s'affiche inexorablement.
Comment résoudre ce problème?
Avec mes remerciements par avance.
 

Pièces jointes

Bonjour,
Une proposition en Pj
 

Pièces jointes

Bonjour,
Une proposition en Pj
Bonjour Jacky67😉, Le Forum🙂

J'avoue ton astuce pour contourner le problème est très judicieuse. Je n'y avais pas pensé.
Cependant, connais-tu un moyen pour inhiber les évènements suivants qui utilisent 'Cancel':
  • TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
  • TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Merci beaucoup, je vais essayer d'adapter ton code sur mon véritable fichier.

Bonne journée.😉
 
Bonjour.
Dans un petit UserForm muni d'une TextBox j'ai écris ceci :
VB:
Option Explicit
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   MsgBox "Exit"
   End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   MsgBox "QueryClose"
   End Sub
Observez l'ordre d'apparition des message et donc d'exécution de évènements.
En déduisez vous une solution possible ?
 
Moi j'ai vu celle ci :
VB:
Option Explicit
Private FermetureEnCours As Boolean
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   If FermetureEnCours Then Exit Sub
   If TextBox1.Text <> "" Then Exit Sub
   MsgBox "Champ obligatoire"
   Cancel = True
   End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   FermetureEnCours = True
   End Sub
 
Bonjour Dranreb🙂,

Merci pour ton aide. Cependant, j'ai rajouté un bouton pour fermer l'userform.
Mes constations:
  • fermeture à partir de la croix c'est QueryClose qui se déclenche en priorité
  • fermeture par le bouton c'est Textbox1_exit qui se déclenche en priorité.

Donc mon souci est l'évènement Exit. J'avoue que je suis perdu pour inhiber cet évènement.

En tout cas merci beaucoup pour ton exemple.

Bonne journée.
 
Encore merci Dranreb, mais je pense que c'est une mauvaise idée que j'ai eu ou plutôt mon approche est fausse.
Car avec ton code, l'utilisateur est obligé de remplir la textbox.
Je vais donc mettre la vérification de la textbox en utilisant un bouton.

Merci beaucoup.
 
- 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

V
Réponses
2
Affichages
2 K
VOILLOT
V
H
Réponses
3
Affichages
1 K
helencompta
H
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…