pile des appels

Le
Camille Leflon
Bonjour à tous !

Je travaille sur une macro VBA sous Excel composée de 39 formulaires.
Beaucoup d'entre eux s'appelle entre eux au cours de l'execution (ex : 1er
form est un menu dont chaque bouton appel d'autre formulaire, qui possèdent
tous un bontons "menu précédent" qui rappelle le menu en question). Or à
chaque appel de la méthode Show d'un autre formulaire, l'éxecution du code
du formulaire s'arrête pour exécuter celui du formulaire suivant( malgrès
que je Unload le formulaire avant d'appeller le suivant).
J'ai verrifié dans la pile des appels, les différents form s'empile les un
sur les autres
Ca ne m'a pas encore posé de problèmes mais je ne trouve pas ça très propre,
et j'ai peur que sur une machine moins puissante ça finisse par en causer
(je suis sur un P IV 2GHz / 512 Mo)

Avez-vous une idée? Ou, savez-vous que ça ne pose pas de problème (j'appelle
"Unload Me" à chaque fois avant d'appeller "Frmxxx.Show") ?


Merci d'avance pour les réponses :)

Camille

  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Pascal Engelmajer
Le #1702605
Salut,
j'ai pas trop d'idées la dessus mais n'est-il pas possible de faire le
unload (en le mémorisant par ex. dans une variable Publi après le chargement
du nouveau : Unload formAppelant
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"Camille Leflon" #g4m$
Bonjour à tous !

Je travaille sur une macro VBA sous Excel composée de 39 formulaires.
Beaucoup d'entre eux s'appelle entre eux au cours de l'execution (ex : 1er
form est un menu dont chaque bouton appel d'autre formulaire, qui
possèdent

tous un bontons "menu précédent" qui rappelle le menu en question...). Or
à

chaque appel de la méthode Show d'un autre formulaire, l'éxecution du code
du formulaire s'arrête pour exécuter celui du formulaire suivant( malgrès
que je Unload le formulaire avant d'appeller le suivant...).
J'ai verrifié dans la pile des appels, les différents form s'empile les un
sur les autres...
Ca ne m'a pas encore posé de problèmes mais je ne trouve pas ça très
propre,

et j'ai peur que sur une machine moins puissante ça finisse par en
causer...

(je suis sur un P IV 2GHz / 512 Mo)

Avez-vous une idée? Ou, savez-vous que ça ne pose pas de problème
(j'appelle

"Unload Me" à chaque fois avant d'appeller "Frmxxx.Show") ?


Merci d'avance pour les réponses :)

Camille




Camille Leflon
Le #1702602
Salut,

J'ai essayé, mais comme le code de formAppelant s'arrète à l'appel de la
méthode formAppelé.Show, formAppelant ne peut pas être décharger de la
mémoire...

Pour le moment la seulle solution que j'avais trouvé était :

Frm1:
private sub commandbutton1_click()
Frm1.Hide
Frm2.Show
[...execution frm2 qui finit par se décharger lui-même...]
Frm1.Show
end sub

Mais le probleme c'est que lorsqu'il y a un 3eme Form et que Frm2 se cache
pour afficher le 3eme, instantanément, l'éxécution de Frm1 reprends où il en
était et donc s'affiche...
Et c'est très fréquents qu'il y ai un 3ème formulaire...

Merci pour ta réponse :)

Amicalement
Camille

"Pascal Engelmajer" message de news:
Salut,
j'ai pas trop d'idées la dessus mais n'est-il pas possible de faire le
unload (en le mémorisant par ex. dans une variable Publi après le
chargement

du nouveau : Unload formAppelant
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.


Sethenes
Le #1702597
essaye d'ajouter vbmodal après le show

form1.show vbmodal

Thierry

"Camille Leflon" news:%
Salut,

J'ai essayé, mais comme le code de formAppelant s'arrète à l'appel de la
méthode formAppelé.Show, formAppelant ne peut pas être décharger de la
mémoire...

Pour le moment la seulle solution que j'avais trouvé était :

Frm1:
private sub commandbutton1_click()
Frm1.Hide
Frm2.Show
[...execution frm2 qui finit par se décharger lui-même...]
Frm1.Show
end sub

Mais le probleme c'est que lorsqu'il y a un 3eme Form et que Frm2 se cache
pour afficher le 3eme, instantanément, l'éxécution de Frm1 reprends où il
en

était et donc s'affiche...
Et c'est très fréquents qu'il y ai un 3ème formulaire...

Merci pour ta réponse :)

Amicalement
Camille

"Pascal Engelmajer" message de news:
Salut,
j'ai pas trop d'idées la dessus mais n'est-il pas possible de faire le
unload (en le mémorisant par ex. dans une variable Publi après le
chargement

du nouveau : Unload formAppelant
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.






Poster une réponse
Anonyme