Declaration de variable globale

cs_flolf Messages postés 17 Date d'inscription mercredi 22 novembre 2000 Statut Membre Dernière intervention 7 septembre 2005 - 7 sept. 2005 à 23:12
fohaf Messages postés 60 Date d'inscription vendredi 14 novembre 2003 Statut Membre Dernière intervention 6 septembre 2012 - 8 sept. 2005 à 07:45
Salut a tous
Je me demandais s'il etait possible de declarer une variable, ou plusieurs d'ailleurs, d'un point de vue generale dans un classeur excel possedant plusieurs modules?
Peut on declarer une variable generale au lancement d'une marco qui aura une valeur initiale, dont la valeur pourra changer dans les differents modules mais dont la valeur a la sortie d'un module sera la meme a l'entree dans un autre?
Je ne sais pas si j'ai ete assez claire en fait
N'hesitez vraiment pas a me tenir au courant si quelqu'un a une reponse

Merci par avance

Florent

____________________________________________
Comme quoi il y a de belles ballades a faire dans le coin...

10 réponses

Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
7 sept. 2005 à 23:15
Salut flof,


Et en déclarant en public en en-tête de module ça ne te vas pas ..?

++

Zlub
0
cs_flolf Messages postés 17 Date d'inscription mercredi 22 novembre 2000 Statut Membre Dernière intervention 7 septembre 2005
7 sept. 2005 à 23:34
Salut Zlub

Merci de repondre
Alors je vais t'avouer que je ne suis pas dans les macros excel depuis bien longtemos...
Alors ce que j'ai fait, j'ai rentre

Public EstOuvert As Boolean

dans chacun de mes modules
juste avant les Sub...
A la fin de mon premier module je veux que la valeur de ce boolean passe a true
je tape donc EstOuvert = True
A l'ouverture de mon deuxieme module je fais un test sur la valeur de ce boolean
et en fait actuellement il considere dans tous les cas que sa valeur est False
Ce qui signifie qu'elle se reinitialise a chaque fois
Peut etre est il importantr de preciser que ces modules se lancent par des boutons differents
Et pour aller au fond des choses le premier module qui s'active par un clic bouton va entre autre creer un fichier excel d'ou le EstOuvert = True a la fin
Je souhaiterai faire un test a l'entree du deuxiieme module qui s'active par un clic sur un autre bouton pour savoir si ce fichier en question est ouvert ou non
Ceci afin de ne pas etre oblige de d'abord cliquer sur le premier bouton pour appuyer sur le deuxieme

La ca fait peur n'est ce pas

Merci

Florent

____________________________________________
Comme quoi il y a de belles ballades a faire dans le coin...
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
7 sept. 2005 à 23:39
Salut Florent,


Tu peux essayer de préfixer ta variable par le nom du module...

Je sais pas trop si ça passe en VBA...

++

Zlub
0
cs_flolf Messages postés 17 Date d'inscription mercredi 22 novembre 2000 Statut Membre Dernière intervention 7 septembre 2005
7 sept. 2005 à 23:42
Prefixer ma variable par le non du module...?
En gros tu veux dire qu'au lieu de l'appeler EstOuvert je l'appelle BugsEstOuvert si mon module s'appelle Bugs c'est ca?

Florent

___________________________________________
Comme quoi il y a de belles ballades a faire dans le coin...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
7 sept. 2005 à 23:46
Salut,

Pardon, j'ai oublié une pécision : Bugs.EstOuvert

++

Zlub
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
7 sept. 2005 à 23:47
Salut,

Sinon tu peux utiliser le mot clé : Global


++

Zlub
0
cs_flolf Messages postés 17 Date d'inscription mercredi 22 novembre 2000 Statut Membre Dernière intervention 7 septembre 2005
7 sept. 2005 à 23:55
Ca ne passe pas...

En fait j'ai mis Public EstOuvert As Boolean dans ThisWorkbook en General
Mais a chaque fois que je rentre dans un autre module il me reinitialise la valeur du boolean a False
Y a t il un moyen pour qu'il conserve en memoire la valeur a chaque sortie de module

Si quelqu'un sait comment faire en sorte qu'un variable dans une macro excel parvienne a garder une valeur acquise dans un module a l'entree dans un autre module ce serait un roi

Merci par avance

Florent

___________________________________________
Comme quoi il y a de belles ballades a faire dans le coin...
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
7 sept. 2005 à 23:58
Salut,

et avec



Global EstOuvert As Boolean ?



le mieux c'est de placer ton booléen dans un module, ou form dont tu es sur qu'il sera ouvert durant tout le temps ...

++

Zlub
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 sept. 2005 à 01:11
salut,
vu toutes les fois où on lit "les variables sous VBA ne sont pas déclarables", çà laisse à penser qu'elles sont soit réinitialisées dans les modules, puisque considérée comme nouvelles, soit qu'elles sont toutes public.
dans quel cas ce n'est pas le module qu'il faudrait préfixer, mais le nom de ton formulaire dans les différents modules.

'-> module
If Form_Princ.EstOuvert = True Then .....

à tester.
PCPT
0
fohaf Messages postés 60 Date d'inscription vendredi 14 novembre 2003 Statut Membre Dernière intervention 6 septembre 2012 2
8 sept. 2005 à 07:45
Ne redéclare pas ta variable dans tous les modules, dans un seul ça suffit
0
Rejoignez-nous