Stocker une valeur d'une private sub dans une variable d'une module

Bonjour,

Je souhaiterais savoir s'il est possible de stocker une valeur d'une private Sub dans une variable d'un module.

Voici ce que je souhaiterais faire :

  1. Réinitialiser une variable ma_donnee d'un module mon_module à l'ouverture du formulaire mon_programme
  2. Dans mon_programme, je peux entrer un nombre dans une textbox ma_textbox. Lors de la saisie d'un nombre dans ma_textbox, cette information est récupérée dans la variable mon_nombre qui se situe dans la Private Sub de mon_programme.
  3. Dans cette Private Sub, je voudrais appeler mon_module pour y stocker mon_nombre dans la variable ma_donnee.
  4. ma_donnee peut alors être utilisée par n'importe quel autre module ou Private Sub de mes formulaires.

Merci pour votre aide :)

Bonjour,

En principe, c'est possible. Il faut déclarer en tête du module mon_module ainsi :

Public ma_donnee as variant 'choisir le type

Cette variable est ensuite utilisable partout.

Seulement, elle ne conserve pas sa valeur à la fermeture du classeur.

Cdlt,

Bonjour,

Merci d'avoir répondu. Peut-être qu'en mettant un exemple, je pourrai être mieux compris.

  • Initialisation de mon formulaire :

Private Sub mon_programme_Initialize()

mon_nombre = 1

Call mon_module(mon_nombre)

Msgbox mon_nombre --> Affichage '1'

Msgbox ma_donnee --> Affichage vide --> Réponse attendue '1'

End Sub

  • Dans le module mon_module :

Public Sub mon_module(mon_nombre)

ma_donnee = mon_nombre

End Sub

Dans mon formulaire mon_programme, j'ai une textbox ma_textbox qui peut permet de remplacer la valeur de mon_nombre.

Je veux donc garder en mémoire ma_donnee et pouvoir l'utiliser dans les Private Sub de mon formulaire pour faire des comparaisons.

Exemple :

  • Saisie dans la textbox de mon formulaire :

Private Sub ma_textbox_Change()

mon_nombre = ma_textbox.Value --> Saisie '2' dans la textbox

If mon_nombre = ma_donnee Then --> ma_donnee vaut '1' suite à l'initialisation du formulaire et doit être utilisée pour la comparaison

Msgbox ("C'est gagné !")

Else

Msgbox ("C'est perdu !") --> Affichage 'C'est perdu !' car 2 (valeur saisie) différent de 1 (valeur initialisée)

End If

End Sub

Merci :)

Bonjour,

Comme je vous ai dit, il suffit de déclarer en tête de n'importe quel module standard votre variable ma_donnee, que vous voulez globaliser, pour l'utiliser ensuite partout dans le projet.

Cdlt,

Rechercher des sujets similaires à "stocker valeur private sub variable module"