Souci fermeture userform

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
 

salim

XLDnaute Occasionnel
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
 
M

Manu

Guest
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
 

salim

XLDnaute Occasionnel
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.
 

Discussions similaires

Statistiques des forums

Discussions
312 393
Messages
2 087 961
Membres
103 686
dernier inscrit
maykrem