Fermer un userform

Le
Lionel
Bonsoir

J'appelle un userform qui possede un bouton OK et un Annuler
Rien de bien passionnant
Mais lorsue mon userform est ouvert si je clique sur la croix en haut a
droite (pour fermer la fenetre) ma macro (OK) se lance
Je ne trouve pas d'evenement lie au clique sur cette croix comment faire
pour juste
"Unload Me"

Merci
Lionel
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Youky
Le #4461321
Bonsoir Lionel,
ceci empêche la fermeture par la croix
.......a mettre en QueryClose
Youky

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = True
End Sub
Lionel
Le #4461301
Merci youki !
mais je veux que la fernetre se ferme et pas empecher cela !
Lionel
"Youky"
Bonsoir Lionel,
ceci empêche la fermeture par la croix
.......a mettre en QueryClose
Youky

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = True
End Sub




MichDenis
Le #4461291
Tu dois utiliser l'événement suivant d'un contrôle Textbox par exemple :

'-----------------------------
Private Sub Textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

End Sub
'-----------------------------

Avec l'événement précédent, lorsque tu cliques sur le X, comme évidemment tu
as sorti du contrôle textbox, cet événement se produit et seulement après le formulaire
se ferme. C'est dans la logique des choses mais emmerdant quand même !



Au lieu d'utiliser l'événement Exit, utilise "BeforeUpDate
'-------------------------------
Private Sub Textbox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

End Sub
'-------------------------------




"Lionel" 462fb4be$0$27380$
Bonsoir

J'appelle un userform qui possede un bouton OK et un Annuler
Rien de bien passionnant
Mais lorsue mon userform est ouvert si je clique sur la croix en haut a
droite (pour fermer la fenetre) ma macro (OK) se lance ...
Je ne trouve pas d'evenement lie au clique sur cette croix comment faire
pour juste
"Unload Me"

Merci
Lionel
Olivier B
Le #4461281
Dans ce cas n'affiche pas la croix... ce qui résoud ton problème et la seule
sortie du userform sera alors cancel !!!

ça contourne ton problème

Je ne me souviens plus de quel site j'avais pris ça mais je pense que ça
peux t'aider


'-- Dans la partie Déclaration de la Form :
Private Const SC_CLOSE = &HF060&
Private Const MF_BYCOMMAND = &H0&

Private Declare Function GetSystemMenu Lib "user32" _
(ByVal hwnd As Long, ByVal bRevert As Long) As Long

Private Declare Function RemoveMenu Lib "user32" _
(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long)
As Long

Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long


'-- Dans l'évènement Initialise de la Form :
Private Sub UserForm_Initialize()
Dim hSysMenu As Long
Dim MeHwnd As Long
MeHwnd = FindWindowA(vbNullString, Me.Caption)
If MeHwnd > 0 Then
hSysMenu = GetSystemMenu(MeHwnd, False)
RemoveMenu hSysMenu, SC_CLOSE, MF_BYCOMMAND
Else
MsgBox "Handle de " & Me.Caption & " Introuvable", vbCritical
End If
End Sub
--
olivier



Merci youki !
mais je veux que la fernetre se ferme et pas empecher cela !
Lionel
"Youky"
Bonsoir Lionel,
ceci empêche la fermeture par la croix
.......a mettre en QueryClose
Youky

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = True
End Sub









Lionel
Le #4461271
Désolé je dois etre c...n ou tres fatigué ...je ne pense pas etre fatigué...
lol
mais je ne comprends pas
j'ai mon userform avec mon calendrier, un bouton ok (qui recupere la
date) un bouton annuler (qui ferme mon userform)
en etant clair , je fais quoi et comment pour que lorsque je clique sur la
croix (close) de ma fenetre du useform , ce dernier se ferme ?
Merci
lionel
"MichDenis" #Otnz$
Tu dois utiliser l'événement suivant d'un contrôle Textbox par exemple :

'-----------------------------
Private Sub Textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

End Sub
'-----------------------------

Avec l'événement précédent, lorsque tu cliques sur le X, comme évidemment
tu

as sorti du contrôle textbox, cet événement se produit et seulement après
le formulaire

se ferme. C'est dans la logique des choses mais emmerdant quand même !



Au lieu d'utiliser l'événement Exit, utilise "BeforeUpDate
'-------------------------------
Private Sub Textbox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

End Sub
'-------------------------------




"Lionel" 462fb4be$0$27380$
Bonsoir

J'appelle un userform qui possede un bouton OK et un Annuler
Rien de bien passionnant
Mais lorsue mon userform est ouvert si je clique sur la croix en haut a
droite (pour fermer la fenetre) ma macro (OK) se lance ...
Je ne trouve pas d'evenement lie au clique sur cette croix comment faire
pour juste
"Unload Me"

Merci
Lionel





MichDenis
Le #4461251
Quand tu cliques sur le bouton X pour fermer ton formulaire,

Publie ici la procédure qui s'exécute avant que le formulaire se ferme.



"Lionel" 462fc88a$0$27385$
Désolé je dois etre c...n ou tres fatigué ...je ne pense pas etre fatigué...
lol
mais je ne comprends pas
j'ai mon userform avec mon calendrier, un bouton ok (qui recupere la
date) un bouton annuler (qui ferme mon userform)
en etant clair , je fais quoi et comment pour que lorsque je clique sur la
croix (close) de ma fenetre du useform , ce dernier se ferme ?
Merci
lionel
"MichDenis" #Otnz$
Tu dois utiliser l'événement suivant d'un contrôle Textbox par exemple :

'-----------------------------
Private Sub Textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

End Sub
'-----------------------------

Avec l'événement précédent, lorsque tu cliques sur le X, comme évidemment
tu

as sorti du contrôle textbox, cet événement se produit et seulement après
le formulaire

se ferme. C'est dans la logique des choses mais emmerdant quand même !



Au lieu d'utiliser l'événement Exit, utilise "BeforeUpDate
'-------------------------------
Private Sub Textbox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

End Sub
'-------------------------------




"Lionel" 462fb4be$0$27380$
Bonsoir

J'appelle un userform qui possede un bouton OK et un Annuler
Rien de bien passionnant
Mais lorsue mon userform est ouvert si je clique sur la croix en haut a
droite (pour fermer la fenetre) ma macro (OK) se lance ...
Je ne trouve pas d'evenement lie au clique sur cette croix comment faire
pour juste
"Unload Me"

Merci
Lionel





Lionel
Le #4461221
comme je l'ai deja dit, il s'agit d'un userform avec un calendrier, un
bouton ok (qui recupere la
date) un bouton annuler (qui ferme mon userform). lorsque je clique sur
annuler je mets la valeur 1 en EA3 de la feuille principale et donc je teste
cette cellule qui fait sauter la procedure vers Sortie: par Goto Sortie:
si elle contient 1 .
donc la procedure du bouton Annuler

Sheets("Feuille principale").Select
[EA3].Value = 1
Unload Me

"MichDenis"
Quand tu cliques sur le bouton X pour fermer ton formulaire,

Publie ici la procédure qui s'exécute avant que le formulaire se ferme.



"Lionel" 462fc88a$0$27385$
Désolé je dois etre c...n ou tres fatigué ...je ne pense pas etre
fatigué...

lol
mais je ne comprends pas
j'ai mon userform avec mon calendrier, un bouton ok (qui recupere la
date) un bouton annuler (qui ferme mon userform)
en etant clair , je fais quoi et comment pour que lorsque je clique sur la
croix (close) de ma fenetre du useform , ce dernier se ferme ?
Merci
lionel
"MichDenis" #Otnz$
Tu dois utiliser l'événement suivant d'un contrôle Textbox par exemple :

'-----------------------------
Private Sub Textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

End Sub
'-----------------------------

Avec l'événement précédent, lorsque tu cliques sur le X, comme
évidemment


tu
as sorti du contrôle textbox, cet événement se produit et seulement
après


le formulaire
se ferme. C'est dans la logique des choses mais emmerdant quand même !



Au lieu d'utiliser l'événement Exit, utilise "BeforeUpDate
'-------------------------------
Private Sub Textbox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

End Sub
'-------------------------------




"Lionel" 462fb4be$0$27380$
Bonsoir

J'appelle un userform qui possede un bouton OK et un Annuler
Rien de bien passionnant
Mais lorsue mon userform est ouvert si je clique sur la croix en haut a
droite (pour fermer la fenetre) ma macro (OK) se lance ...
Je ne trouve pas d'evenement lie au clique sur cette croix comment faire
pour juste
"Unload Me"

Merci
Lionel










JLuc
Le #4461081
*Bonjour Lionel*,
Ce userform "Calendrier", c'est toi qui l'a créé ?
Si oui, dans la théorie, si tu clic sur la croix rien ne doit
s'executer excepter ces procédures :
Private Sub Userform_Deactivate()
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As
Integer)
Private Sub UserForm_Terminate()

Ce qu'il ne faut pas : Appeler ta procédure Ok_Click() dans une de ces
procédures
Si tu n'a rien mis dedans, le clic sur la croix ferme le formulaire
sans rien faire

comme je l'ai deja dit, il s'agit d'un userform avec un calendrier, un
bouton ok (qui recupere la
date) un bouton annuler (qui ferme mon userform). lorsque je clique sur
annuler je mets la valeur 1 en EA3 de la feuille principale et donc je teste
cette cellule qui fait sauter la procedure vers Sortie: par Goto Sortie:
si elle contient 1 .
donc la procedure du bouton Annuler

Sheets("Feuille principale").Select
[EA3].Value = 1
Unload Me

"MichDenis"
Quand tu cliques sur le bouton X pour fermer ton formulaire,

Publie ici la procédure qui s'exécute avant que le formulaire se ferme.



"Lionel" 462fc88a$0$27385$
Désolé je dois etre c...n ou tres fatigué ...je ne pense pas etre fatigué...
lol
mais je ne comprends pas
j'ai mon userform avec mon calendrier, un bouton ok (qui recupere la
date) un bouton annuler (qui ferme mon userform)
en etant clair , je fais quoi et comment pour que lorsque je clique sur la
croix (close) de ma fenetre du useform , ce dernier se ferme ?
Merci
lionel
"MichDenis" #Otnz$
Tu dois utiliser l'événement suivant d'un contrôle Textbox par exemple :

'-----------------------------
Private Sub Textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

End Sub
'-----------------------------

Avec l'événement précédent, lorsque tu cliques sur le X, comme évidemment
tu as sorti du contrôle textbox, cet événement se produit et seulement
après le formulaire se ferme. C'est dans la logique des choses mais
emmerdant quand même !



Au lieu d'utiliser l'événement Exit, utilise "BeforeUpDate
'-------------------------------
Private Sub Textbox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

End Sub
'-------------------------------




"Lionel" 462fb4be$0$27380$
Bonsoir

J'appelle un userform qui possede un bouton OK et un Annuler
Rien de bien passionnant
Mais lorsue mon userform est ouvert si je clique sur la croix en haut a
droite (pour fermer la fenetre) ma macro (OK) se lance ...
Je ne trouve pas d'evenement lie au clique sur cette croix comment faire
pour juste
"Unload Me"

Merci
Lionel




--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



Lionel
Le #4483071
Salut !
je ne comprends pas cette partie de la reponse :

"...Ce qu'il ne faut pas : Appeler ta procédure Ok_Click() dans une de ces
procédures
Si tu n'a rien mis dedans, le clic sur la croix ferme le formulaire
sans rien faire ..."

j'ai un bouton "ok" donc j'ai forcement une procedure xxxx_click()...
merci de m'eclairer...

"JLuc"
*Bonjour Lionel*,
Ce userform "Calendrier", c'est toi qui l'a créé ?
Si oui, dans la théorie, si tu clic sur la croix rien ne doit
s'executer excepter ces procédures :
Private Sub Userform_Deactivate()
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As
Integer)
Private Sub UserForm_Terminate()

Ce qu'il ne faut pas : Appeler ta procédure Ok_Click() dans une de ces
procédures
Si tu n'a rien mis dedans, le clic sur la croix ferme le formulaire
sans rien faire

comme je l'ai deja dit, il s'agit d'un userform avec un calendrier, un
bouton ok (qui recupere la
date) un bouton annuler (qui ferme mon userform). lorsque je clique sur
annuler je mets la valeur 1 en EA3 de la feuille principale et donc je
teste


cette cellule qui fait sauter la procedure vers Sortie: par Goto
Sortie:


si elle contient 1 .
donc la procedure du bouton Annuler

Sheets("Feuille principale").Select
[EA3].Value = 1
Unload Me

"MichDenis"
Quand tu cliques sur le bouton X pour fermer ton formulaire,

Publie ici la procédure qui s'exécute avant que le formulaire se ferme.



"Lionel" 462fc88a$0$27385$
Désolé je dois etre c...n ou tres fatigué ...je ne pense pas etre
fatigué...



lol
mais je ne comprends pas
j'ai mon userform avec mon calendrier, un bouton ok (qui recupere la
date) un bouton annuler (qui ferme mon userform)
en etant clair , je fais quoi et comment pour que lorsque je clique sur
la



croix (close) de ma fenetre du useform , ce dernier se ferme ?
Merci
lionel
"MichDenis" #Otnz$
Tu dois utiliser l'événement suivant d'un contrôle Textbox par exemple
:





'-----------------------------
Private Sub Textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

End Sub
'-----------------------------

Avec l'événement précédent, lorsque tu cliques sur le X, comme
évidemment




tu as sorti du contrôle textbox, cet événement se produit et seulement
après le formulaire se ferme. C'est dans la logique des choses mais
emmerdant quand même !



Au lieu d'utiliser l'événement Exit, utilise "BeforeUpDate
'-------------------------------
Private Sub Textbox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)





End Sub
'-------------------------------




"Lionel" 462fb4be$0$27380$
Bonsoir

J'appelle un userform qui possede un bouton OK et un Annuler
Rien de bien passionnant
Mais lorsue mon userform est ouvert si je clique sur la croix en haut
a




droite (pour fermer la fenetre) ma macro (OK) se lance ...
Je ne trouve pas d'evenement lie au clique sur cette croix comment
faire




pour juste
"Unload Me"

Merci
Lionel




--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O







JLuc
Le #4481291
*Bonjour Lionel*,

Salut !
je ne comprends pas cette partie de la reponse :

"...Ce qu'il ne faut pas : Appeler ta procédure Ok_Click() dans une de ces
procédures
Si tu n'a rien mis dedans, le clic sur la croix ferme le formulaire
sans rien faire ..."

j'ai un bouton "ok" donc j'ai forcement une procedure xxxx_click()...
merci de m'eclairer...
Si tu clic sur la croix rouge, seules les procédures :

Private Sub Userform_Deactivate()
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As
Integer)
Private Sub UserForm_Terminate()
seront exécutées. Si tu n'as pas de code dans ces procédures, rien ne


sera exécuté. Si tu as du code, c'est là qu'il faut enlever ce qui n'a
rien à y faire.
Voila ;-)


"JLuc"
*Bonjour Lionel*,
Ce userform "Calendrier", c'est toi qui l'a créé ?
Si oui, dans la théorie, si tu clic sur la croix rien ne doit
s'executer excepter ces procédures :
Private Sub Userform_Deactivate()
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As
Integer)
Private Sub UserForm_Terminate()

Ce qu'il ne faut pas : Appeler ta procédure Ok_Click() dans une de ces
procédures
Si tu n'a rien mis dedans, le clic sur la croix ferme le formulaire
sans rien faire

comme je l'ai deja dit, il s'agit d'un userform avec un calendrier, un
bouton ok (qui recupere la
date) un bouton annuler (qui ferme mon userform). lorsque je clique sur
annuler je mets la valeur 1 en EA3 de la feuille principale et donc je
teste cette cellule qui fait sauter la procedure vers Sortie: par Goto
Sortie: si elle contient 1 .
donc la procedure du bouton Annuler

Sheets("Feuille principale").Select
[EA3].Value = 1
Unload Me

"MichDenis"
Quand tu cliques sur le bouton X pour fermer ton formulaire,

Publie ici la procédure qui s'exécute avant que le formulaire se ferme.



"Lionel" 462fc88a$0$27385$
Désolé je dois etre c...n ou tres fatigué ...je ne pense pas etre
fatigué... lol
mais je ne comprends pas
j'ai mon userform avec mon calendrier, un bouton ok (qui recupere la
date) un bouton annuler (qui ferme mon userform)
en etant clair , je fais quoi et comment pour que lorsque je clique sur la
croix (close) de ma fenetre du useform , ce dernier se ferme ?
Merci
lionel
"MichDenis" #Otnz$
Tu dois utiliser l'événement suivant d'un contrôle Textbox par exemple

'-----------------------------
Private Sub Textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

End Sub
'-----------------------------

Avec l'événement précédent, lorsque tu cliques sur le X, comme évidemment
tu as sorti du contrôle textbox, cet événement se produit et seulement
après le formulaire se ferme. C'est dans la logique des choses mais
emmerdant quand même !



Au lieu d'utiliser l'événement Exit, utilise "BeforeUpDate
'-------------------------------
Private Sub Textbox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

End Sub
'-------------------------------




"Lionel" 462fb4be$0$27380$
Bonsoir

J'appelle un userform qui possede un bouton OK et un Annuler
Rien de bien passionnant
Mais lorsue mon userform est ouvert si je clique sur la croix en haut a
droite (pour fermer la fenetre) ma macro (OK) se lance ...
Je ne trouve pas d'evenement lie au clique sur cette croix comment faire
pour juste
"Unload Me"

Merci
Lionel




--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O





Publicité
Poster une réponse
Anonyme