Bonjour,
J'essaie de respecter scrupuleusement les instructions de la FAQ
http://faq.vb.free.fr/index.php?question
Je viens d'écrire un programme d'une seule feuille dans lequel tout arrêt tu
programme est demandé par Unload Me.
Form_Unload comprend la destruction des variables suivie d'un message
d'avertissement.
Très curieusement, Form_Unload se comporte comme une procédure quelconque.
Lorsqu'elle est exécutée, la suite du programme se poursuit.
Pour le moment j'ai ajouté End à la fin.
Aïe François pas taper. ;-)
Je suis très perplexe.
Bonjour,
J'essaie de respecter scrupuleusement les instructions de la FAQ
http://faq.vb.free.fr/index.php?question
Je viens d'écrire un programme d'une seule feuille dans lequel tout arrêt tu
programme est demandé par Unload Me.
Form_Unload comprend la destruction des variables suivie d'un message
d'avertissement.
Très curieusement, Form_Unload se comporte comme une procédure quelconque.
Lorsqu'elle est exécutée, la suite du programme se poursuit.
Pour le moment j'ai ajouté End à la fin.
Aïe François pas taper. ;-)
Je suis très perplexe.
Bonjour,
J'essaie de respecter scrupuleusement les instructions de la FAQ
http://faq.vb.free.fr/index.php?question
Je viens d'écrire un programme d'une seule feuille dans lequel tout arrêt tu
programme est demandé par Unload Me.
Form_Unload comprend la destruction des variables suivie d'un message
d'avertissement.
Très curieusement, Form_Unload se comporte comme une procédure quelconque.
Lorsqu'elle est exécutée, la suite du programme se poursuit.
Pour le moment j'ai ajouté End à la fin.
Aïe François pas taper. ;-)
Je suis très perplexe.
On Thu, 19 Jul 2007 20:05:47 +0200, "Aski" wrote:Bonjour,
J'essaie de respecter scrupuleusement les instructions de la FAQ
http://faq.vb.free.fr/index.php?question
Je viens d'écrire un programme d'une seule feuille dans lequel tout
arrêt tu programme est demandé par Unload Me.
Form_Unload comprend la destruction des variables suivie d'un message
d'avertissement.
Très curieusement, Form_Unload se comporte comme une procédure
quelconque. Lorsqu'elle est exécutée, la suite du programme se
poursuit.
Pour le moment j'ai ajouté End à la fin.
Aïe François pas taper. ;-)
Je suis très perplexe.
Sans voir le code, faut deviner ...
Tu dois probablement créer une nouvelle instance d'un objet sans t'en
rendre compte et perdre la référence existante. Exemple avec un Form
et un 2 CommandButton :
Conclusion, vire le End et exécute en mode pas à pas pour voir ce qui
passe.
On Thu, 19 Jul 2007 20:05:47 +0200, "Aski" <aski@asci.asc> wrote:
Bonjour,
J'essaie de respecter scrupuleusement les instructions de la FAQ
http://faq.vb.free.fr/index.php?question
Je viens d'écrire un programme d'une seule feuille dans lequel tout
arrêt tu programme est demandé par Unload Me.
Form_Unload comprend la destruction des variables suivie d'un message
d'avertissement.
Très curieusement, Form_Unload se comporte comme une procédure
quelconque. Lorsqu'elle est exécutée, la suite du programme se
poursuit.
Pour le moment j'ai ajouté End à la fin.
Aïe François pas taper. ;-)
Je suis très perplexe.
Sans voir le code, faut deviner ...
Tu dois probablement créer une nouvelle instance d'un objet sans t'en
rendre compte et perdre la référence existante. Exemple avec un Form
et un 2 CommandButton :
Conclusion, vire le End et exécute en mode pas à pas pour voir ce qui
passe.
On Thu, 19 Jul 2007 20:05:47 +0200, "Aski" wrote:Bonjour,
J'essaie de respecter scrupuleusement les instructions de la FAQ
http://faq.vb.free.fr/index.php?question
Je viens d'écrire un programme d'une seule feuille dans lequel tout
arrêt tu programme est demandé par Unload Me.
Form_Unload comprend la destruction des variables suivie d'un message
d'avertissement.
Très curieusement, Form_Unload se comporte comme une procédure
quelconque. Lorsqu'elle est exécutée, la suite du programme se
poursuit.
Pour le moment j'ai ajouté End à la fin.
Aïe François pas taper. ;-)
Je suis très perplexe.
Sans voir le code, faut deviner ...
Tu dois probablement créer une nouvelle instance d'un objet sans t'en
rendre compte et perdre la référence existante. Exemple avec un Form
et un 2 CommandButton :
Conclusion, vire le End et exécute en mode pas à pas pour voir ce qui
passe.
Bonjour,
J'ai testé ce que tu dis,
A priori
unload formX
n'est pas exécuté car la feuille a encore du code
et cancel est sans doute <> 0,
ça ne force donc pas la fermeture, d'où l'écriture
suivante:
Sub Command1_Click() ' bouton
Unload Form1
Exit Sub ' <<<------
MsgBox "on ne dervait pas voir ça"
End Sub
Sub Form_Unload(cancel As Integer)
MsgBox "ici procédure unload" & vbLf & cancel
Unload Form1 ' ici aussi si fermé par [X]
End
End Sub
Bonjour,
J'ai testé ce que tu dis,
A priori
unload formX
n'est pas exécuté car la feuille a encore du code
et cancel est sans doute <> 0,
ça ne force donc pas la fermeture, d'où l'écriture
suivante:
Sub Command1_Click() ' bouton
Unload Form1
Exit Sub ' <<<------
MsgBox "on ne dervait pas voir ça"
End Sub
Sub Form_Unload(cancel As Integer)
MsgBox "ici procédure unload" & vbLf & cancel
Unload Form1 ' ici aussi si fermé par [X]
End
End Sub
Bonjour,
J'ai testé ce que tu dis,
A priori
unload formX
n'est pas exécuté car la feuille a encore du code
et cancel est sans doute <> 0,
ça ne force donc pas la fermeture, d'où l'écriture
suivante:
Sub Command1_Click() ' bouton
Unload Form1
Exit Sub ' <<<------
MsgBox "on ne dervait pas voir ça"
End Sub
Sub Form_Unload(cancel As Integer)
MsgBox "ici procédure unload" & vbLf & cancel
Unload Form1 ' ici aussi si fermé par [X]
End
End Sub
Bonjour,
J'essaie de respecter scrupuleusement les instructions de la FAQ
http://faq.vb.free.fr/index.php?question
Je viens d'écrire un programme d'une seule feuille dans lequel tout
arrêt tu programme est demandé par Unload Me.
Form_Unload comprend la destruction des variables suivie d'un message
d'avertissement.
Très curieusement, Form_Unload se comporte comme une procédure
quelconque. Lorsqu'elle est exécutée, la suite du programme se poursuit.
Pour le moment j'ai ajouté End à la fin.
Aïe François pas taper. ;-)
Je suis très perplexe.
Bonjour,
J'essaie de respecter scrupuleusement les instructions de la FAQ
http://faq.vb.free.fr/index.php?question
Je viens d'écrire un programme d'une seule feuille dans lequel tout
arrêt tu programme est demandé par Unload Me.
Form_Unload comprend la destruction des variables suivie d'un message
d'avertissement.
Très curieusement, Form_Unload se comporte comme une procédure
quelconque. Lorsqu'elle est exécutée, la suite du programme se poursuit.
Pour le moment j'ai ajouté End à la fin.
Aïe François pas taper. ;-)
Je suis très perplexe.
Bonjour,
J'essaie de respecter scrupuleusement les instructions de la FAQ
http://faq.vb.free.fr/index.php?question
Je viens d'écrire un programme d'une seule feuille dans lequel tout
arrêt tu programme est demandé par Unload Me.
Form_Unload comprend la destruction des variables suivie d'un message
d'avertissement.
Très curieusement, Form_Unload se comporte comme une procédure
quelconque. Lorsqu'elle est exécutée, la suite du programme se poursuit.
Pour le moment j'ai ajouté End à la fin.
Aïe François pas taper. ;-)
Je suis très perplexe.
Le problème vient du fait que tu appelles Unload Me dans la procédure
MainPgm, elle même appelée dans l'événement Load (qui n'est donc pas
terminé). M'est avis que l'on ne peut faire un Unload sur un objet
dont l'événement Load est en cours (ça devrait d'ailleurs, a mon avis,
générer une erreur comme quoi cette action n'est pas possible dans ce
contexte)
Une solution parmi d'autres est d'utiliser un module :
Le problème vient du fait que tu appelles Unload Me dans la procédure
MainPgm, elle même appelée dans l'événement Load (qui n'est donc pas
terminé). M'est avis que l'on ne peut faire un Unload sur un objet
dont l'événement Load est en cours (ça devrait d'ailleurs, a mon avis,
générer une erreur comme quoi cette action n'est pas possible dans ce
contexte)
Une solution parmi d'autres est d'utiliser un module :
Le problème vient du fait que tu appelles Unload Me dans la procédure
MainPgm, elle même appelée dans l'événement Load (qui n'est donc pas
terminé). M'est avis que l'on ne peut faire un Unload sur un objet
dont l'événement Load est en cours (ça devrait d'ailleurs, a mon avis,
générer une erreur comme quoi cette action n'est pas possible dans ce
contexte)
Une solution parmi d'autres est d'utiliser un module :
Re-bonjour,
Non, END n'est pas interdit par Microsoft,
François c'est pas Microsoft (pas encore).
Je crois que le problème est que END ne
décharge pas certains objet déclarés avec Set, ou
des objets logiques (peut être ?), mais s'il n'y a
pas tout ça, END est suffisant !
Personnellement je n'ai jamais constaté que
mes programmes tournaient après les avoir fermés
par END (ce que je faisais jadis directement),
puis, comme certains dirent que ça tournait
encore, ben je ferme désormais les feuilles
(Unload 1, 2, 3) + END.
A priori (déduction), Unload ne s'exécute
qu'une fois qu'il a terminé le code en cours, ou
qu'il rencontre un débranchement. On pourrait
aussi mettre LES unload dans la fonction du même
nom de la feuille maîtresse, et appeler la
procédure avec un truc du genre : call unload(x),
mais je ne sais absolument pas si ça marche ?
Je ne sais pas si c'est LA solution, mais
c'est une solution qui fonctionne en tout cas, en
plus, souvent il n'y a pas une solution, mais DES
solutions...
Re-bonjour,
Non, END n'est pas interdit par Microsoft,
François c'est pas Microsoft (pas encore).
Je crois que le problème est que END ne
décharge pas certains objet déclarés avec Set, ou
des objets logiques (peut être ?), mais s'il n'y a
pas tout ça, END est suffisant !
Personnellement je n'ai jamais constaté que
mes programmes tournaient après les avoir fermés
par END (ce que je faisais jadis directement),
puis, comme certains dirent que ça tournait
encore, ben je ferme désormais les feuilles
(Unload 1, 2, 3) + END.
A priori (déduction), Unload ne s'exécute
qu'une fois qu'il a terminé le code en cours, ou
qu'il rencontre un débranchement. On pourrait
aussi mettre LES unload dans la fonction du même
nom de la feuille maîtresse, et appeler la
procédure avec un truc du genre : call unload(x),
mais je ne sais absolument pas si ça marche ?
Je ne sais pas si c'est LA solution, mais
c'est une solution qui fonctionne en tout cas, en
plus, souvent il n'y a pas une solution, mais DES
solutions...
Re-bonjour,
Non, END n'est pas interdit par Microsoft,
François c'est pas Microsoft (pas encore).
Je crois que le problème est que END ne
décharge pas certains objet déclarés avec Set, ou
des objets logiques (peut être ?), mais s'il n'y a
pas tout ça, END est suffisant !
Personnellement je n'ai jamais constaté que
mes programmes tournaient après les avoir fermés
par END (ce que je faisais jadis directement),
puis, comme certains dirent que ça tournait
encore, ben je ferme désormais les feuilles
(Unload 1, 2, 3) + END.
A priori (déduction), Unload ne s'exécute
qu'une fois qu'il a terminé le code en cours, ou
qu'il rencontre un débranchement. On pourrait
aussi mettre LES unload dans la fonction du même
nom de la feuille maîtresse, et appeler la
procédure avec un truc du genre : call unload(x),
mais je ne sais absolument pas si ça marche ?
Je ne sais pas si c'est LA solution, mais
c'est une solution qui fonctionne en tout cas, en
plus, souvent il n'y a pas une solution, mais DES
solutions...
Hello Jacques93 et LE TROLL,
Finalement, la méthode de Jacques est la seule qui fonctionne avec la
première de LE TROLL qui vient immédiatement à l'esprit si on veut
éviter le End.
Private Sub MainPgm()
Dim Auto As String
Dim Test As Boolean
Test = False: Auto = ""
If Auto <> "Auto" Then
If MsgBox("Répondre 'non'", vbYesNo) = vbNo Then
Test = True
Unload me
Exit Sub
End If
End If
MsgBox "Le programme n'aurait-il pas dû s'arrêter"
End Sub
Reste à savoir quelle est la méthode la mieux construite.
Hello Jacques93 et LE TROLL,
Finalement, la méthode de Jacques est la seule qui fonctionne avec la
première de LE TROLL qui vient immédiatement à l'esprit si on veut
éviter le End.
Private Sub MainPgm()
Dim Auto As String
Dim Test As Boolean
Test = False: Auto = ""
If Auto <> "Auto" Then
If MsgBox("Répondre 'non'", vbYesNo) = vbNo Then
Test = True
Unload me
Exit Sub
End If
End If
MsgBox "Le programme n'aurait-il pas dû s'arrêter"
End Sub
Reste à savoir quelle est la méthode la mieux construite.
Hello Jacques93 et LE TROLL,
Finalement, la méthode de Jacques est la seule qui fonctionne avec la
première de LE TROLL qui vient immédiatement à l'esprit si on veut
éviter le End.
Private Sub MainPgm()
Dim Auto As String
Dim Test As Boolean
Test = False: Auto = ""
If Auto <> "Auto" Then
If MsgBox("Répondre 'non'", vbYesNo) = vbNo Then
Test = True
Unload me
Exit Sub
End If
End If
MsgBox "Le programme n'aurait-il pas dû s'arrêter"
End Sub
Reste à savoir quelle est la méthode la mieux construite.