Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : unload userForm [ Windows / Shell ] (zigo34)

mercredi 26 décembre 2007 à 15:12:22 | unload userForm

zigo34

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 !!! 

si quelqu'1 a une idée... merci d'avance !

Zigo

mercredi 26 décembre 2007 à 17:16:45 | Re : unload userForm

Exploreur

Membre Club
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..

A+
Exploreur

 Linux a un noyau, Windows un pépin

 


mercredi 26 décembre 2007 à 21:24:17 | Re : unload userForm

zigo34

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.


Zigo

jeudi 27 décembre 2007 à 15:40:07 | Re : unload userForm

bigfish_le vrai

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+

jeudi 27 décembre 2007 à 16:00:19 | Re : unload userForm

zigo34

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+

Zigo

jeudi 27 décembre 2007 à 16:22:37 | Re : unload userForm

Exploreur

Membre Club
Salut,

Ben, déclare tes variables dans un module (*.bas)...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 


jeudi 27 décembre 2007 à 18:06:28 | Re : unload userForm

zigo34

Réponse acceptée !
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...
@+

Zigo



Cette discussion est classé dans : bouton, code, formulaire, userform, unload


Répondre à ce message

Sujets en rapport avec ce message

+ de convivialité? [ par jia2812 ] Bonjour,Dans ma base Access, voyez-vous les boutons de déplacement en bas de chaque formulaire [Access of course, ps VB!]?...1 - Je les supprime, en l Probleme d'enregistrement de donnees sous un formulaire Access [ par SPEEDERMENN ] Slt,J'ai un formulaire possédant des champs, et un date and time picker control.j'ai un bouton enregistrer crée par l'assistant de Access(il génère d' code bouton formulaire excel [ par docgeo ] GeoGeoBonjour!!!Je travaille sous Excel. J'ai créer un bouton sur une feuile à côté de mon tableau. Lorque l'utilisteur appuie dessus ca ouvre un form Appel d'un bouton à partir d'une Userform différente [ par joule93 ] Bonjour, je souhaiterai lancer le code d'un bouton se trouvant dans une UserForm1, à partir du code d'une UserForm2.Mon code est le suivant:UserForm1. calculatrice windows dans un formulaire? [ par Fabian123 ] Bonjour!juste une petite question:est-il possible d'afficher la calculatrice windows dans un userform, mais que celle-ci fasse partie intégrante de l' Probleme de Génération de Commandboutons [ par PoluxDaboss ] Bonjour,Je vous solicite car j'ai un gros souci. En faite je cherche a ce que un userform est un bouton de création de boutons dans une feuille excel. Formulaire vbscript [ par nicolococo ] Bonjour,J'ai un petit code qui me permets de créer un user sous Active Directory, cela marche pas trop mal, le souhaiterais créer un formulaire en htm créer plusieur bouton automatiquement [ par lazer819 ] je veux créer plusieur bouton automatiquement par un code en fonction de base de donner dé que j'ajoute un element a la base de donner un button sa j Rendre invisible un bouton de formulaire [ par ydu ] Bonjour à tous,Je tente désespérement de rendre invisible (en VB) un bouton que j'ai crée avec la bar d'outil formulaire mais sans succès.Lorsque je c Aide Userform [ par gad311081 ] Bonjour à tous je suis à la recherche d'un code ou d'une fonction...Je souhaiterais que lorsque que je clic sur une case à cocher ou une autre l'image


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.