Souci fermeture userform

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

M

Manu

Guest
Bonjour à tous,

J'ai un userform avec un contrôle textbox sur lequel j'effectue une vérification à la sortie du contrôle (textbox_exit(Byval....). Si la saisie n'est pas correcte j'affiche un message et je reste sur mon contrôle (cancel=true). Jusque là tout va bien cela marche très bien

Par contre, dans mon userform j'ai un bouton 'Annuler' destiné à fermer complètement mon userform (Unload me).

Le problème est lorsque je clique sur ce bonton, mon formulaire se ferme mais j'ai le msgbox de mon textbox qui s'affiche.

Que dois-je faire pour que mon formulaire se ferme normalement sans affichage de mon message ?

Merci
 
Bonjour

Manu comme ça je dirais que ton Message est mal situé dans ton code, tu as du le mettre de manière à ce qu'il soit en dehors des conditions ce qui explique qu'il soit executer quelque soit la situation.

si non tu peux toujours afficher ton code ou mettre ton classeur en pièce jointe pour qu'on puisse se faire une meilleur idée.

salim
 
Ok voici mon code



Code:
Private Sub TextBox1_exit(ByVal cancel As MSForms.ReturnBoolean)
If TextBox1.Value = '' Then
MsgBox 'Merci de saisir un code agence.', vbCritical, 'Erreur de saisie'
cancel = True
End If
End Sub

Private Sub CmbQuitter_Click()

Unload UserForm1
End Sub
 
En fait l'apparition du message viens du fait que tu as mis ton code dans l'événement Exit du TextBox cet événement se produit dès la perte du Focus du control actif et forcement si tu cliques sur un bouton par exemple le TextBox perd le focus ce qui provoque l'apparition du message. Plutot que d'utiliser cet événement moi je te propose d'utiliser deux CommandButton pour gérer la validation et la fermeture de l'UserForm, en attendant mieux...... mais à mes yeux c'est la solution la plus simple.

Code:
Option Explicit

Private Sub CommandButton1_Click()
    If Me.TextBox1.Value = '' Then
       MsgBox 'Merci de saisir un code agence.', vbCritical, 'Erreur de saisie'
    End If
End Sub

Private Sub CommandButton2_Click()
    Unload Me
End Sub

salim.
 
- 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

Retour