zigo34
Messages postés6Date d'inscriptionjeudi 21 septembre 2006StatutMembreDernière intervention27 décembre 2007
-
26 déc. 2007 à 15:12
jabveneau
Messages postés3Date d'inscriptionmercredi 25 février 2009StatutMembreDernière intervention 3 mars 2009
-
25 févr. 2009 à 19:15
bonjour,
j'ai un formulaire tout simple sous EXCEL2000 (j'ai fini par enlever tout le code...), donc avec seulement un bouton OK pour le fermer !!
j'affiche mon formulaire avec Form.Show dans une macro VBA... jusque là tout va bien...
dans le code du formulaire, sur l'évènement Click du bouton OK je veux le fermer avec Unload Me.
il se ferme... mais toutes les variables sont réinitialisées ????? ... sans aucun message d'erreur !
A noter que j'ai d'autres formulaires dans ce classeur qui fonctionnent correctement selon la même méthode !!!
zigo34
Messages postés6Date d'inscriptionjeudi 21 septembre 2006StatutMembreDernière intervention27 décembre 2007 27 déc. 2007 à 18:06
re,
ben voilà... ça marche... sans trop savoir pourquoi...
la seule chose que j'ai rajoutée c'est "Option Explicit" dans tous mes modules... c'est bon à savoir.
merci à Exploreur et bisfish pour leur aide...
@+
cs_Exploreur
Messages postés4822Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 26 déc. 2007 à 17:16
Salut,
Normal que tes variables se remettent à zéro quand tu décharge ta feuille...Pour les autres variables, je pense que si elles ne remettent pas à zéro, c'est qu'il est fort possible qu'elles soient déclarées en Public..
zigo34
Messages postés6Date d'inscriptionjeudi 21 septembre 2006StatutMembreDernière intervention27 décembre 2007 26 déc. 2007 à 21:24
merci pour ta réponse Exploreur... mais j'ai mal du me faire comprendre...
je ne décharge pas ma feuille... seulement UNLOAD du formulaire...
et ce sont toutes les variables publiques qui sont réinitialisées...
merci à toi.
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201314 27 déc. 2007 à 15:40
Salut,
Selon l'aide excel (de la version anglaise traduit par Google) :
Unload Statement
Supprime un objet
de la mémoire.
Syntaxe
Unload objet
L'espace requis objet
représente un objet qui permet d'évaluer l'expression d'un objet dans la liste de l'application.
Remarques
Lorsqu'un objet est déchargé, il est
supprimé de la mémoire et toute la mémoire associée à l'objet est récupéré.
Jusqu'à ce qu'elle soit placée dans la mémoire à nouveau en utilisant l'état de
charge, un utilisateur ne peut interagir avec un objet, et l'objet ne peut être
manipulée par programmation.
Regarde la remarque : Lorsqu'un objet est déchargé, il est
supprimé de la mémoire et toute la mémoire associée à l'objet est récupéré.
Ce que je comprend et par experience les variables associées seront reinitialisées. Donc soit tes variables ne sont pas declarées au bon endroit et sont considérées comme associées. Par exemple dans VBA une variable meme publique declarées dans le code d'un UserForm est une variable associée donc reinitialisé. Soit tu n'utilise pas la bonne methode. Si tu as besoin de reafficher un UserForm dans sont etat precedent tu peux utiliser : Userform.Hide qui ne reinitialise rien donc au prochain Userform.Show ton userform sera reafficher tel que precedemment.
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
zigo34
Messages postés6Date d'inscriptionjeudi 21 septembre 2006StatutMembreDernière intervention27 décembre 2007 27 déc. 2007 à 16:00
merci bigfish de me répondre,
cependant, pour les tests, j'ai supprimé toutes les variables de mon UserForm... il reste seulement l'instruction Unload Me dans la sub "Click du bouton OK", rien de plus, or toutes mes variables sont réinitialisées... cela veut dire que l'interpréteur arrete l'exécution et détecte une anomalie... mais laquelle ? puisque je n'ai aucun message d'erreur !
avec la méthode Userform.Hide ça marche... mais comme tu le dis l'état des variables affichées ne change pas... et je dois les ré-initialiser dans ma procédure d'appel du formulaire juste avant le UserForm.Show.
c'est une façon de fonctionner qui est acceptable... sauf que j'aimerais bien comprendre pourquoi ça marche pas ... avec unload, conseillé sur de nombreux sites que j'ai consultés avant de poser ma question ici...
je pourrai pencher pour un Bug d'EXCEL... mais ceci étant dit... je sais par expérience qu'il est plus probable c'est moi qui utilise mal la méthode...
merci encore... je finirai bien par trouver et je donnerai la réponse sur ce forum ce jour-là...
A+
jabveneau
Messages postés3Date d'inscriptionmercredi 25 février 2009StatutMembreDernière intervention 3 mars 2009 25 févr. 2009 à 19:15
Bonjour Zigo 34
ayant le même problème que toi , je serais assez intéressé pour reprendre cette ancienne discussion , je me suis permis de t'envoyer un MP mais je ne sais pas trop comment ça fonctionne et si cela t'est parvenu ...
A plus tard RV