OVH Cloud OVH Cloud

Terminer une App. VBA

4 réponses
Avatar
Monalisa
Bonjour, j'ai fait un développement avec VBA dans Autocad, en apparence cela
fonctionne très bien, mais lorsque j'essaie de mesurer une distance
verticale d'un diamètre d'une élipse tout gèle (horizontale pas de problème)
je me demande si c'est par manque de mémoire ou quelque chose comme cela...
Je termine mon application comme cela:


Unload frmspline
End
End Sub

est-ce que quand j'utilise la fonction Unload cela vide toute la mémoire
utilisé pour le calcul?? ou après la fonction "End"

Merci

4 réponses

Avatar
X
Bonsoir, tu dis:

UnLoad formX

Décharge la feuille de la mémoire...
----------------


"Monalisa" a écrit dans le message de news:
E_uyf.308$
Bonjour, j'ai fait un développement avec VBA dans Autocad, en apparence
cela fonctionne très bien, mais lorsque j'essaie de mesurer une distance
verticale d'un diamètre d'une élipse tout gèle (horizontale pas de
problème) je me demande si c'est par manque de mémoire ou quelque chose
comme cela... Je termine mon application comme cela:


Unload frmspline
End
End Sub

est-ce que quand j'utilise la fonction Unload cela vide toute la mémoire
utilisé pour le calcul?? ou après la fonction "End"

Merci





Avatar
Jean-Marc
"Monalisa" a écrit dans le message de
news:E_uyf.308$
Bonjour, j'ai fait un développement avec VBA dans Autocad, en


apparence cela
fonctionne très bien, mais lorsque j'essaie de mesurer une distance
verticale d'un diamètre d'une élipse tout gèle (horizontale pas de


problème)
je me demande si c'est par manque de mémoire ou quelque chose comme


cela...
Je termine mon application comme cela:


Unload frmspline
End
End Sub

est-ce que quand j'utilise la fonction Unload cela vide toute la


mémoire
utilisé pour le calcul?? ou après la fonction "End"




Hello,

dans tous les cas le End est à proscrire absolument car
il empèche justement, en le court-circuitant, tout le
travail normal qui se fait "sous le capot" pour libérer
la mémoire, les ressources, etc.

C'est en tout cas comme ça pour une application en VB, je
suppose (sans en être sur) que c'est la même chose en VBA.

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Avatar
X
L'instruction END selon Microsoft, ci-joint copie de ce qui est dit
dans l'aide, ne change en rien a priori la fermeture du moment que c'est
déchargé par Unload, ça permet en plus d'avoir un repère sur la fin de
programme...

Voici ce que dit l'aide de Microsoft:

Lorsqu'elle est exécutée, l'instruction End réinitialise toutes les
variables au niveau du module et toutes les variables locales statiques dans
tous les modules. Pour conserver la valeur de ces variables, utilisez plutôt
l'instruction Stop. Vous pourrez ainsi reprendre l'exécution tout en
préservant la valeur des variables.
Note L'instruction End met immédiatement fin à l'exécution du code, sans
appeler d'événement Unload, QueryUnload, ou Terminate, ou tout autre code
Visual Basic. Le code que vous avez écrit dans les événements Unload,
QueryUnload, et Terminate des feuilles et des modules de classe n'est pas
exécuté. Les objets créés depuis les modules de classe sont détruits, les
fichiers ouverts au moyen de l'instruction Open sont fermés et la mémoire
occupée par le programme est vidée. Les références d'objet appartenant à
d'autres programmes ne sont plus valides.

---fin---

En plus, il est bien indiqué que le "end" vide la mémoire, mais une
polémique existe, certains disent que ça ne vide pas toujours la mémoire,
voire que ça ne décharge pas tout...
Personnellement en 7 ans de VB je n'ai jamais constaté de processus
résiduels involontaires après la fermeture par "end", mais bon, par
sécurité, je ferme d'abord par:
Unload X
Unload Y...
END

--------------

"Monalisa" a écrit dans le message de news:
E_uyf.308$
Bonjour, j'ai fait un développement avec VBA dans Autocad, en apparence
cela fonctionne très bien, mais lorsque j'essaie de mesurer une distance
verticale d'un diamètre d'une élipse tout gèle (horizontale pas de
problème) je me demande si c'est par manque de mémoire ou quelque chose
comme cela... Je termine mon application comme cela:


Unload frmspline
End
End Sub

est-ce que quand j'utilise la fonction Unload cela vide toute la mémoire
utilisé pour le calcul?? ou après la fonction "End"

Merci





Avatar
Monalisa
Merci de vos réponse


"X" <x> a écrit dans le message de news:

L'instruction END selon Microsoft, ci-joint copie de ce qui est dit
dans l'aide, ne change en rien a priori la fermeture du moment que c'est
déchargé par Unload, ça permet en plus d'avoir un repère sur la fin de
programme...

Voici ce que dit l'aide de Microsoft:

Lorsqu'elle est exécutée, l'instruction End réinitialise toutes les
variables au niveau du module et toutes les variables locales statiques
dans tous les modules. Pour conserver la valeur de ces variables, utilisez
plutôt l'instruction Stop. Vous pourrez ainsi reprendre l'exécution tout
en préservant la valeur des variables.
Note L'instruction End met immédiatement fin à l'exécution du code, sans
appeler d'événement Unload, QueryUnload, ou Terminate, ou tout autre code
Visual Basic. Le code que vous avez écrit dans les événements Unload,
QueryUnload, et Terminate des feuilles et des modules de classe n'est pas
exécuté. Les objets créés depuis les modules de classe sont détruits, les
fichiers ouverts au moyen de l'instruction Open sont fermés et la mémoire
occupée par le programme est vidée. Les références d'objet appartenant à
d'autres programmes ne sont plus valides.

---fin---

En plus, il est bien indiqué que le "end" vide la mémoire, mais une
polémique existe, certains disent que ça ne vide pas toujours la mémoire,
voire que ça ne décharge pas tout...
Personnellement en 7 ans de VB je n'ai jamais constaté de processus
résiduels involontaires après la fermeture par "end", mais bon, par
sécurité, je ferme d'abord par:
Unload X
Unload Y...
END

--------------

"Monalisa" a écrit dans le message de news:
E_uyf.308$
Bonjour, j'ai fait un développement avec VBA dans Autocad, en apparence
cela fonctionne très bien, mais lorsque j'essaie de mesurer une distance
verticale d'un diamètre d'une élipse tout gèle (horizontale pas de
problème) je me demande si c'est par manque de mémoire ou quelque chose
comme cela... Je termine mon application comme cela:


Unload frmspline
End
End Sub

est-ce que quand j'utilise la fonction Unload cela vide toute la mémoire
utilisé pour le calcul?? ou après la fonction "End"

Merci