Est-il possible d'utiliser des variables locales à travers des modules?
J'ai un projet VBA avec un Module et un Userform. Je veux utiliser certaines variables de mon module dans mon Userform.
Est-il nécessaire que je déclarer ces variables à l'échelle mondiale? Je n'aime pas les variables globales, car ils restent en mémoire après l'exécution du code, et j'ai du le réinitialiser ces variables une par une au début de ma macro. Je ne peux pas utiliser le mot de la Fin pour effacer les variables à partir de la mémoire parce que j'ai besoin de vous souvenir d'un ou deux de ces variables. Comment les gens font habituellement?
Edit: est-il possible de passer une variable de l'objet Userform pour le module sans créer une variable globale?
Vous devez vous connecter pour publier un commentaire.
Créer une Propriété Publique dans votre formulaire et passer la variable dans le formulaire à l'aide de la propriété. Useforms sont juste un module de classe, sauf qu'ils ont un composant de l'interface utilisateur. Exemple: Dans votre userform module de code du
Et dans un module standard
Une façon de le faire serait de déclarer des variables publiques comme ceci:
Mais si vous ne préfère pas de cette façon, vous pouvez insérer une nouvelle feuille Excel, définissez les propriétés de la nouvelle feuille de "2 - xlSheetVeryHidden" et vous pouvez écrire vos valeurs dans les cellules de cette feuille et de les lire à partir de votre UserForm.
Donc vous n'aurez pas de variables globales, mais toutes les valeurs sont sur cette feuille. Ensuite, vous pouvez prendre les valeurs de cette feuille si vous avez besoin de.