6
votes

Appeler userForm_initialize () dans un module

Comment puis-je appeler userForm_initialize () dans un module au lieu de l'objet de code UserForm?


0 commentaires

3 Réponses :


12
votes

à partir d'un module:

UserFormName.UserForm_Initialize


8 commentaires

Salut, alors où dois-je mettre le userformName.userform_initialize ?


Où que vous aimiez ... tout VBA dans le classeur dans un sous ou une fonction.


Merci pour la méthode Daniel. Puis-je me mettre pour le laisser s'initialiser? E.G J'ai reçu beaucoup d'userForm (s) et je ne veux pas coder chacun d'eux.


Vous pouvez utiliser un pour chaque UF dans userforms boucle?


Dans la fonction, j'ai essayé de déclarer leformname comme UserForm / String, puis appelé le nom du formulaire dans le paramètre mais toujours pas de chance avec ça :(


@Tall parce que la suggestion de Larry n'a pas fonctionné, j'ai étudié le problème et j'ai posté le Q & A ici: Comment puis-je charger chaque utilisateur sans avoir à appeler .Show individuellement?


Je me demande si ma demande était inappropriée d'appliquer parce que je trouve à peine une solution encore. Je suis vraiment reconnaissant avec votre effort Daniel. Je vais suivre le Q & A mentionné. Merci encore!


J'ai expérimenté cette solution et j'ai couru dans des problèmes avec le myuserformeName.userform_initialize (). Comme indiqué @Daniel utilise simplement Myuserformname.Show Appels userForm_initialize (). C'est l'approche plus simple de mon expérience.



3
votes

IMHO La méthode userform_initialize doit rester privée BACAUSE c'est Gestionnaire d'événements pour l'événement Initialize de l'UserForm.

Ce gestionnaire d'événements est appelé lorsque Nouvelle instance de laformerform est créée . Dans ce handicapeur, vous pouvez initialiser les membres privés de la classe UserForm1.

Exemple:

Code de module standard: xxx

Code de formulaire utilisateur: xxx


8 commentaires

Bonjour Daniel, bonne pensée là-bas. Ce que je voulais, c'est ex. Créer une fonction pour userForm_initialize dans le module (que je ne spécifierai pas ce que l'utilisateur à init encore). Concernant lequel UserForm à init, je l'inclurai plus tard dans l'UserForm. La raison pour laquelle je l'ai fait est parce que je voulais inclure le init dans l'instruction si sinon dans le module.


Je ne comprends pas la signification du commentaire que tu écrives, désolé. En général, vous devriez éviter d'appeler userForm_inititilisez () Dirtry, car il sera appelé par la classe UserForm1 en réaction à la création de UserForm1. Il est symbolicité un gestionnaire d'événements afin de gérer l'événement.


1. J'ai si sinon instruction dans Module1 2. Avant extrémité si , je souhaite réinitialiser userForm1 3. Je veux la fonction "Réinitialiser" À l'intérieur du module 1 PS désolé pour ma mauvaise explication


C'est bon Tan, mon anglais est mauvais aussi :-). Vous ne pouvez pas simplement publier votre exemple de code?


J'ai résolu mon problème et j'ai posté la solution dans ma propre question ci-dessus. Pensez-vous que c'est bien?


Et qu'est-ce que les formes utilisateur sont exactement?


UserForms est l'endroit où vous avez mis les commandes dedans et l'affiche comme une fenêtre. Corrige moi si je me trompe.


I UserForms de l'aide VBA est décrit comme ceci: la collection UserForms est une collection dont les éléments représentent chaque utilisateur chargé dans une application.



1
votes

solution Après tout ce temps, j'ai réussi à résoudre le problème.

dans le module: Userforms (nom) .uerform_initialize

Cette méthode fonctionne mieux pour init de manière dynamique l'utilisateur actuel


0 commentaires