OVH Cloud OVH Cloud

Comment utiliser Form_Unload(Cancel ???

13 réponses
Avatar
surfeur75
Bonjour,

J'ai un problème avec la procédure
Form_Unload(Cancel As Integer)
et les touches système (croix rouge) et (<Alt>+<F4>)

Ce que je voudrais faire c'est gérer la fermeture de la feuille
vis-à-vis
des commandes systèmes sus-citées.
Alors pour interdire à la forme de se fermer, il suffit de mettre cancel
à -1,
le problème, c'est qu'après, la form ne se ferme plus jamais car je n'arrive
pas à remettre le cancel local à 0 dans Form_Unload...

En gros je voudrais
dim x As Byte
Form_Unload(Cancel As Integer)
If x = 1 Then Cancel = 0 ' on ferme par le système la form
If x = 2 Then Cancel = (-1) ' on NE ferme PAS par le système la form
End Sub

Il y a peut être une possibilité en associant un "fonction", mais je manie
trop mal le passage de paramètres pour y arriver, pouvez-vous m'aider,
avez-vous une solution ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!

10 réponses

1 2
Avatar
Stéphane Maillard
Bonjour,

et les touches système (croix rouge) et (<Alt>+<F4>)



Pourquoi ne pas utiliser la fonction KeyDown du Form :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If (KeyCode = vbKeyF4) And (Shift And vbAltMask) Then
MsgBox ("Veuillez quitter le logiciel par le menu ou le bouton")
End If
End Sub


--

Cordialement

Stéphane Maillard
Rixy software
Saint Malo

"surfeur75" a écrit dans le message de
news:
Bonjour,

J'ai un problème avec la procédure
Form_Unload(Cancel As Integer)
et les touches système (croix rouge) et (<Alt>+<F4>)

Ce que je voudrais faire c'est gérer la fermeture de la feuille
vis-à-vis
des commandes systèmes sus-citées.
Alors pour interdire à la forme de se fermer, il suffit de mettre cancel
à -1,
le problème, c'est qu'après, la form ne se ferme plus jamais car je


n'arrive
pas à remettre le cancel local à 0 dans Form_Unload...

En gros je voudrais
dim x As Byte
Form_Unload(Cancel As Integer)
If x = 1 Then Cancel = 0 ' on ferme par le système la form
If x = 2 Then Cancel = (-1) ' on NE ferme PAS par le système la form
End Sub

Il y a peut être une possibilité en associant un "fonction", mais je manie
trop mal le passage de paramètres pour y arriver, pouvez-vous m'aider,
avez-vous une solution ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!








---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.556 / Virus Database: 348 - Release Date: 26/12/2003
Avatar
surfeur75
Bonjour, merci,

Ben, "pourquoi je n'utilise pas Form_KeyDown", dis-tu, ben parce que
j'ai bien l'impression que les commande système de fermeture d'une form ne
passe pas par l'évènement keyDown.
Simple, mettre un évènement KeyDown et un msgbox "x", dedans, et ma foi, en
faisant <alt>+<f4>, dis-moi si tu vois ton message "x"...
Par contre, si par hasard tu as une autre idée :o) ???
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!


"Stéphane Maillard" <rixysoftware(stop-pub-spam)@nerim.fr> a écrit dans le
message de news: bsoneg$1sjr$
Bonjour,

> et les touches système (croix rouge) et (<Alt>+<F4>)

Pourquoi ne pas utiliser la fonction KeyDown du Form :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If (KeyCode = vbKeyF4) And (Shift And vbAltMask) Then
MsgBox ("Veuillez quitter le logiciel par le menu ou le bouton")
End If
End Sub


--

Cordialement

Stéphane Maillard
Rixy software
Saint Malo

"surfeur75" a écrit dans le message de
news:
> Bonjour,
>
> J'ai un problème avec la procédure
> Form_Unload(Cancel As Integer)
> et les touches système (croix rouge) et (<Alt>+<F4>)
>
> Ce que je voudrais faire c'est gérer la fermeture de la feuille
> vis-à-vis
> des commandes systèmes sus-citées.
> Alors pour interdire à la forme de se fermer, il suffit de mettre cancel
> à -1,
> le problème, c'est qu'après, la form ne se ferme plus jamais car je
n'arrive
> pas à remettre le cancel local à 0 dans Form_Unload...
>
> En gros je voudrais
> dim x As Byte
> Form_Unload(Cancel As Integer)
> If x = 1 Then Cancel = 0 ' on ferme par le système la form
> If x = 2 Then Cancel = (-1) ' on NE ferme PAS par le système la form
> End Sub
>
> Il y a peut être une possibilité en associant un "fonction", mais je


manie
> trop mal le passage de paramètres pour y arriver, pouvez-vous m'aider,
> avez-vous une solution ?
> --
> @+, bye, Joe.
> Pour m'écrire ng75AROBASEnoosPOINTfr
> remplace AROBASE et POINT par leur vrai signe
> Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
>
>
>
>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.556 / Virus Database: 348 - Release Date: 26/12/2003




Avatar
Stéphane Maillard
Re,

Simple, mettre un évènement KeyDown et un msgbox "x", dedans, et ma foi,


en
faisant <alt>+<f4>, dis-moi si tu vois ton message "x"...



Je viens de faire le test et cela fonctionne.
Par contre pour être sur j'ai ajouté ceci :

KeyCode = Empty
Shift = Empty

Je vois mon message et ma form ne se ferme pas.

--

Cordialement

Stéphane Maillard
Rixy software
Saint Malo

"surfeur75" a écrit dans le message de
news:%
Bonjour, merci,

Ben, "pourquoi je n'utilise pas Form_KeyDown", dis-tu, ben parce que
j'ai bien l'impression que les commande système de fermeture d'une form ne
passe pas par l'évènement keyDown.
Simple, mettre un évènement KeyDown et un msgbox "x", dedans, et ma foi,


en
faisant <alt>+<f4>, dis-moi si tu vois ton message "x"...
Par contre, si par hasard tu as une autre idée :o) ???
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!


"Stéphane Maillard" <rixysoftware(stop-pub-spam)@nerim.fr> a écrit dans le
message de news: bsoneg$1sjr$
> Bonjour,
>
> > et les touches système (croix rouge) et (<Alt>+<F4>)
>
> Pourquoi ne pas utiliser la fonction KeyDown du Form :
>
> Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
> If (KeyCode = vbKeyF4) And (Shift And vbAltMask) Then
> MsgBox ("Veuillez quitter le logiciel par le menu ou le bouton")
> End If
> End Sub
>
>
> --
>
> Cordialement
>
> Stéphane Maillard
> Rixy software
> Saint Malo
>
> "surfeur75" a écrit dans le message de
> news:
> > Bonjour,
> >
> > J'ai un problème avec la procédure
> > Form_Unload(Cancel As Integer)
> > et les touches système (croix rouge) et (<Alt>+<F4>)
> >
> > Ce que je voudrais faire c'est gérer la fermeture de la feuille
> > vis-à-vis
> > des commandes systèmes sus-citées.
> > Alors pour interdire à la forme de se fermer, il suffit de mettre


cancel
> > à -1,
> > le problème, c'est qu'après, la form ne se ferme plus jamais car je
> n'arrive
> > pas à remettre le cancel local à 0 dans Form_Unload...
> >
> > En gros je voudrais
> > dim x As Byte
> > Form_Unload(Cancel As Integer)
> > If x = 1 Then Cancel = 0 ' on ferme par le système la form
> > If x = 2 Then Cancel = (-1) ' on NE ferme PAS par le système la


form
> > End Sub
> >
> > Il y a peut être une possibilité en associant un "fonction", mais je
manie
> > trop mal le passage de paramètres pour y arriver, pouvez-vous m'aider,
> > avez-vous une solution ?
> > --
> > @+, bye, Joe.
> > Pour m'écrire ng75AROBASEnoosPOINTfr
> > remplace AROBASE et POINT par leur vrai signe
> > Il l'a fait car il ne savait pas que c'était impossible, alea jacta


est!
> >
> >
> >
> >
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.556 / Virus Database: 348 - Release Date: 26/12/2003
>
>






---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.556 / Virus Database: 348 - Release Date: 26/12/2003
Avatar
Claude BATTAIA
Salut,

Et en utilisant l'évènement Form_QueryUnload à la place de Form_Unload ?
Tu peux utiliser Cancel et tu as des informations sur l'origine de la
demande de fermeture de la FORM.


"surfeur75" a écrit dans le message de news:

Bonjour,

J'ai un problème avec la procédure
Form_Unload(Cancel As Integer)
et les touches système (croix rouge) et (<Alt>+<F4>)

Ce que je voudrais faire c'est gérer la fermeture de la feuille
vis-à-vis
des commandes systèmes sus-citées.
Alors pour interdire à la forme de se fermer, il suffit de mettre cancel
à -1,
le problème, c'est qu'après, la form ne se ferme plus jamais car je


n'arrive
pas à remettre le cancel local à 0 dans Form_Unload...

En gros je voudrais
dim x As Byte
Form_Unload(Cancel As Integer)
If x = 1 Then Cancel = 0 ' on ferme par le système la form
If x = 2 Then Cancel = (-1) ' on NE ferme PAS par le système la form
End Sub

Il y a peut être une possibilité en associant un "fonction", mais je manie
trop mal le passage de paramètres pour y arriver, pouvez-vous m'aider,
avez-vous une solution ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!






Avatar
surfeur75
Stéphane, oui j'ai réussi à faire marcher en faisant ça

KeyPreview = true
Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF4 And (Shift And vbAltMask > 0) Then
If condition = True Then KeyCode = 0
End If
End Sub

Merci, mais ça ne résoud pas le second problème:
"LA FERMETURE AVEC LA CROIX ROUGE"
Que je voudrais gérer de même manière (sans doute avec Form_Unload
(Cancel...
As-tu une seconde idée ?

--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!


"Stéphane Maillard" <rixysoftware(stop-pub-spam)@nerim.fr> a écrit dans le
message de news: bsos2h$1v7u$
Re,

> Simple, mettre un évènement KeyDown et un msgbox "x", dedans, et ma foi,
en
> faisant <alt>+<f4>, dis-moi si tu vois ton message "x"...

Je viens de faire le test et cela fonctionne.
Par contre pour être sur j'ai ajouté ceci :

KeyCode = Empty
Shift = Empty

Je vois mon message et ma form ne se ferme pas.

--

Cordialement

Stéphane Maillard
Rixy software
Saint Malo

"surfeur75" a écrit dans le message de
news:%
> Bonjour, merci,
>
> Ben, "pourquoi je n'utilise pas Form_KeyDown", dis-tu, ben parce que
> j'ai bien l'impression que les commande système de fermeture d'une form


ne
> passe pas par l'évènement keyDown.
> Simple, mettre un évènement KeyDown et un msgbox "x", dedans, et ma foi,
en
> faisant <alt>+<f4>, dis-moi si tu vois ton message "x"...
> Par contre, si par hasard tu as une autre idée :o) ???
> --
> @+, bye, Joe.
> Pour m'écrire ng75AROBASEnoosPOINTfr
> remplace AROBASE et POINT par leur vrai signe
> Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
>
>
> "Stéphane Maillard" <rixysoftware(stop-pub-spam)@nerim.fr> a écrit dans


le
> message de news: bsoneg$1sjr$
> > Bonjour,
> >
> > > et les touches système (croix rouge) et (<Alt>+<F4>)
> >
> > Pourquoi ne pas utiliser la fonction KeyDown du Form :
> >
> > Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
> > If (KeyCode = vbKeyF4) And (Shift And vbAltMask) Then
> > MsgBox ("Veuillez quitter le logiciel par le menu ou le


bouton")
> > End If
> > End Sub
> >
> >
> > --
> >
> > Cordialement
> >
> > Stéphane Maillard
> > Rixy software
> > Saint Malo
> >
> > "surfeur75" a écrit dans le message de
> > news:
> > > Bonjour,
> > >
> > > J'ai un problème avec la procédure
> > > Form_Unload(Cancel As Integer)
> > > et les touches système (croix rouge) et (<Alt>+<F4>)
> > >
> > > Ce que je voudrais faire c'est gérer la fermeture de la feuille
> > > vis-à-vis
> > > des commandes systèmes sus-citées.
> > > Alors pour interdire à la forme de se fermer, il suffit de mettre
cancel
> > > à -1,
> > > le problème, c'est qu'après, la form ne se ferme plus jamais car je
> > n'arrive
> > > pas à remettre le cancel local à 0 dans Form_Unload...
> > >
> > > En gros je voudrais
> > > dim x As Byte
> > > Form_Unload(Cancel As Integer)
> > > If x = 1 Then Cancel = 0 ' on ferme par le système la form
> > > If x = 2 Then Cancel = (-1) ' on NE ferme PAS par le système la
form
> > > End Sub
> > >
> > > Il y a peut être une possibilité en associant un "fonction", mais je
> manie
> > > trop mal le passage de paramètres pour y arriver, pouvez-vous


m'aider,
> > > avez-vous une solution ?
> > > --
> > > @+, bye, Joe.
> > > Pour m'écrire ng75AROBASEnoosPOINTfr
> > > remplace AROBASE et POINT par leur vrai signe
> > > Il l'a fait car il ne savait pas que c'était impossible, alea jacta
est!
> > >
> > >
> > >
> > >
> >
> >
> > ---
> > Outgoing mail is certified Virus Free.
> > Checked by AVG anti-virus system (http://www.grisoft.com).
> > Version: 6.0.556 / Virus Database: 348 - Release Date: 26/12/2003
> >
> >
>
>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.556 / Virus Database: 348 - Release Date: 26/12/2003




Avatar
François Picalausa
Bonjour/soir,

lis l'article suivant de la faq:
http://faq.vb.free.fr/index.php?questiony

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"surfeur75" a écrit dans le message de
news:
Stéphane, oui j'ai réussi à faire marcher en faisant ça

KeyPreview = true
Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF4 And (Shift And vbAltMask > 0) Then
If condition = True Then KeyCode = 0
End If
End Sub

Merci, mais ça ne résoud pas le second problème:
"LA FERMETURE AVEC LA CROIX ROUGE"
Que je voudrais gérer de même manière (sans doute avec Form_Unload
(Cancel...
As-tu une seconde idée ?


"Stéphane Maillard" <rixysoftware(stop-pub-spam)@nerim.fr> a écrit
dans le message de news: bsos2h$1v7u$
Re,

Simple, mettre un évènement KeyDown et un msgbox "x", dedans, et ma
foi, en faisant <alt>+<f4>, dis-moi si tu vois ton message "x"...



Je viens de faire le test et cela fonctionne.
Par contre pour être sur j'ai ajouté ceci :

KeyCode = Empty
Shift = Empty

Je vois mon message et ma form ne se ferme pas.

--

Cordialement

Stéphane Maillard
Rixy software
Saint Malo

"surfeur75" a écrit dans le message de
news:%
Bonjour, merci,

Ben, "pourquoi je n'utilise pas Form_KeyDown", dis-tu, ben
parce que j'ai bien l'impression que les commande système de
fermeture d'une form ne passe pas par l'évènement keyDown.
Simple, mettre un évènement KeyDown et un msgbox "x", dedans, et ma
foi, en faisant <alt>+<f4>, dis-moi si tu vois ton message "x"...
Par contre, si par hasard tu as une autre idée :o) ???
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta
est!


"Stéphane Maillard" <rixysoftware(stop-pub-spam)@nerim.fr> a écrit
dans le message de news: bsoneg$1sjr$
Bonjour,

et les touches système (croix rouge) et (<Alt>+<F4>)



Pourquoi ne pas utiliser la fonction KeyDown du Form :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If (KeyCode = vbKeyF4) And (Shift And vbAltMask) Then
MsgBox ("Veuillez quitter le logiciel par le menu ou le
bouton") End If
End Sub


--

Cordialement

Stéphane Maillard
Rixy software
Saint Malo

"surfeur75" a écrit dans le message de
news:
Bonjour,

J'ai un problème avec la procédure
Form_Unload(Cancel As Integer)
et les touches système (croix rouge) et (<Alt>+<F4>)

Ce que je voudrais faire c'est gérer la fermeture de la
feuille vis-à-vis
des commandes systèmes sus-citées.
Alors pour interdire à la forme de se fermer, il suffit de mettre
cancel à -1,
le problème, c'est qu'après, la form ne se ferme plus jamais car
je n'arrive pas à remettre le cancel local à 0 dans Form_Unload...

En gros je voudrais
dim x As Byte
Form_Unload(Cancel As Integer)
If x = 1 Then Cancel = 0 ' on ferme par le système la form
If x = 2 Then Cancel = (-1) ' on NE ferme PAS par le système
la form End Sub

Il y a peut être une possibilité en associant un "fonction", mais
je manie trop mal le passage de paramètres pour y arriver,
pouvez-vous m'aider, avez-vous une solution ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea
jacta est!








---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.556 / Virus Database: 348 - Release Date: 26/12/2003










---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.556 / Virus Database: 348 - Release Date: 26/12/2003




Avatar
surfeur75
Bonjour, merci à tous, en mélangeant un peu vos infos, j'ai trouvé,
voici ce que j'ai fait:

KeyPreview = True
Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF4 And (Shift And vbAltMask > 0) Then
If condition = True Then KeyCode = 0...
End If
End Sub

Sub Form_Unload(Cancel As Integer)
Cancel = 0
If condition = True Then Cancel = -1...
End Sub
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!


"surfeur75" a écrit dans le message de news:

Bonjour,

J'ai un problème avec la procédure
Form_Unload(Cancel As Integer)
et les touches système (croix rouge) et (<Alt>+<F4>)

Ce que je voudrais faire c'est gérer la fermeture de la feuille
vis-à-vis
des commandes systèmes sus-citées.
Alors pour interdire à la forme de se fermer, il suffit de mettre cancel
à -1,
le problème, c'est qu'après, la form ne se ferme plus jamais car je


n'arrive
pas à remettre le cancel local à 0 dans Form_Unload...

En gros je voudrais
dim x As Byte
Form_Unload(Cancel As Integer)
If x = 1 Then Cancel = 0 ' on ferme par le système la form
If x = 2 Then Cancel = (-1) ' on NE ferme PAS par le système la form
End Sub

Il y a peut être une possibilité en associant un "fonction", mais je manie
trop mal le passage de paramètres pour y arriver, pouvez-vous m'aider,
avez-vous une solution ?
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!






Avatar
Patrice Henrio
Je vois dans ce code une petite erreur sans conséquence mais qui montre une
méconnaissance des booléens.
Pourquoi écrire

if Condition=true then

au lieu de

if Condition then
"surfeur75" a écrit dans le message de
news:%
Bonjour, merci à tous, en mélangeant un peu vos infos, j'ai


trouvé,
voici ce que j'ai fait:

KeyPreview = True
Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF4 And (Shift And vbAltMask > 0) Then
If condition = True Then KeyCode = 0...
End If
End Sub

Sub Form_Unload(Cancel As Integer)
Cancel = 0
If condition = True Then Cancel = -1...
End Sub
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!


"surfeur75" a écrit dans le message de news:

> Bonjour,
>
> J'ai un problème avec la procédure
> Form_Unload(Cancel As Integer)
> et les touches système (croix rouge) et (<Alt>+<F4>)
>
> Ce que je voudrais faire c'est gérer la fermeture de la feuille
> vis-à-vis
> des commandes systèmes sus-citées.
> Alors pour interdire à la forme de se fermer, il suffit de mettre cancel
> à -1,
> le problème, c'est qu'après, la form ne se ferme plus jamais car je
n'arrive
> pas à remettre le cancel local à 0 dans Form_Unload...
>
> En gros je voudrais
> dim x As Byte
> Form_Unload(Cancel As Integer)
> If x = 1 Then Cancel = 0 ' on ferme par le système la form
> If x = 2 Then Cancel = (-1) ' on NE ferme PAS par le système la form
> End Sub
>
> Il y a peut être une possibilité en associant un "fonction", mais je


manie
> trop mal le passage de paramètres pour y arriver, pouvez-vous m'aider,
> avez-vous une solution ?
> --
> @+, bye, Joe.
> Pour m'écrire ng75AROBASEnoosPOINTfr
> remplace AROBASE et POINT par leur vrai signe
> Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
>
>
>
>




Avatar
Zoury
Salut Patrice! :O)

Pourquoi écrire

if Condition=true then

au lieu de

if Condition then




bien que j'utilise abondamment le premier (qui est plus rapide si mes
souvenirs sont exactes), le deuxième est tout de même très utilisé dans le
milieu pour des raisons de clareté de code... ;O)

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"surfeur75" a écrit dans le message de
news:%
> Bonjour, merci à tous, en mélangeant un peu vos infos, j'ai
trouvé,
> voici ce que j'ai fait:
>
> KeyPreview = True
> Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
> If KeyCode = vbKeyF4 And (Shift And vbAltMask > 0) Then
> If condition = True Then KeyCode = 0...
> End If
> End Sub
>
> Sub Form_Unload(Cancel As Integer)
> Cancel = 0
> If condition = True Then Cancel = -1...
> End Sub
> --
> @+, bye, Joe.
> Pour m'écrire ng75AROBASEnoosPOINTfr
> remplace AROBASE et POINT par leur vrai signe
> Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
>
>
> "surfeur75" a écrit dans le message de news:
>
> > Bonjour,
> >
> > J'ai un problème avec la procédure
> > Form_Unload(Cancel As Integer)
> > et les touches système (croix rouge) et (<Alt>+<F4>)
> >
> > Ce que je voudrais faire c'est gérer la fermeture de la feuille
> > vis-à-vis
> > des commandes systèmes sus-citées.
> > Alors pour interdire à la forme de se fermer, il suffit de mettre


cancel
> > à -1,
> > le problème, c'est qu'après, la form ne se ferme plus jamais car je
> n'arrive
> > pas à remettre le cancel local à 0 dans Form_Unload...
> >
> > En gros je voudrais
> > dim x As Byte
> > Form_Unload(Cancel As Integer)
> > If x = 1 Then Cancel = 0 ' on ferme par le système la form
> > If x = 2 Then Cancel = (-1) ' on NE ferme PAS par le système la


form
> > End Sub
> >
> > Il y a peut être une possibilité en associant un "fonction", mais je
manie
> > trop mal le passage de paramètres pour y arriver, pouvez-vous m'aider,
> > avez-vous une solution ?
> > --
> > @+, bye, Joe.
> > Pour m'écrire ng75AROBASEnoosPOINTfr
> > remplace AROBASE et POINT par leur vrai signe
> > Il l'a fait car il ne savait pas que c'était impossible, alea jacta


est!
> >
> >
> >
> >
>
>




Avatar
Pierre Alexis [MVP]
Salut Zoury,

Tu as écrit :

bien que j'utilise abondamment le premier (qui est plus rapide si mes
souvenirs sont exactes), le deuxième est tout de même très utilisé dans le
milieu pour des raisons de clareté de code... ;O)



Non si ta condition (qui peut être un booléen) est bien nommée, c'est très
clair. Chez moi à l'unnif tu emplois "If Condition = True Then" ca te fait des
points en moins...

--
Pierre ALEXIS - MVP Visual Basic
Courriel & messenger :
FAQ Visual Basic : http://faq.vb.free.fr/
1 2