Modifier une variable globale

Résolu/Fermé
Signaler
Messages postés
43
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
23 mai 2014
-
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
-
Bonjour,

Dans un module je déclare une variable globale comme suit:

Public Function affichage() As Boolean

affichage = True

End Function

Par défaut, affichage prends la valeur VRAI. J'aimerais dans un module modifier la variable globale et mettre affichage à FAUX.

Peut-on modifier une variable globale à partir d'un module ?

Merci de votre aide.

Cordialement.

A voir également:

1 réponse

Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
149
Bonjour,

Bien sûr. mais je te conseillerais de déclarer ta variable autrement.
Car à chaque fois que tu iras chercher ta variable, la fonction se lancera.

Tu peux déclarer ta variable comme ceci dans un module :

Public affichage As boolean
et lui affecter la valeur que tu veux dans un module :

sub variable ()

affichage = true
end sub

donc dans un module, tu auras :


Public affichage As boolean
sub variable ()

affichage = true
end sub
0
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
149
et tu peux même écrire une deuxième macro :


Public affichage As boolean
sub variable1 ()

affichage = true
end sub

sub variable2 ()
affichage = false
end sub

==> dans variable1 affichage égale à true
dans variable2 affichage = false
0
Messages postés
43
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
23 mai 2014

Mais comment faire si je veux initialiser ma variable globale après l'avoir déclarée ?
0
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
149
tu mets sa valeur dans la macro en première ligne.
0
Messages postés
43
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
23 mai 2014

En fait mon problème c'est que lorsque j'exécute ma Macro1 qui appelle ma Macro2 je voudrais que le code gérant l'affichage qui se trouve dans ma Macro2 ne s'execute pas, qu'il n'affiche pas mon bloc note. Mais je veux aussi lorsque que j'exécute ma Macro2 toute seule, que le code qui gère l'affichage de mon bloc note s'exécute.

Voilà en gros mon problème.

C'est pour ça que j'ai besoin d'initialiser ma variable globale lorsque je la déclare (pas dans les modules). Je voudrais la mettre à vrai par défaut.

Et lorsque j'exécuterai ma Macro1 qui appelle ma Macro2, je voudrais que ma Macro1 aille mettre ma variable affichage à faux, pour que ma Macro2, une fois appelée, n'affiche pas mon bloc note.

Et si je lance ma Macro2 toute seule, par défaut l'affichage doit se faire.

Dans les deux cas ma Macro2 s'exécutera, c'est pour ça que je ne peux pas modifier ma variable affichage à cet endroit, et que j'ai besoin de la mettre par défaut à vrai.
0
Messages postés
43
Date d'inscription
dimanche 13 mars 2011
Statut
Membre
Dernière intervention
23 mai 2014

C'est bon, j'ai trouvé la solution à mon problème.

Lorsque je déclare comme tu me l'as dit la variable affichage:

Public affichage As boolean

Elle prends par défaut la valeur FAUX. Ainsi lorsque je lance ma Macro1 qui appelle ma Macro2 je la passe à VRAI dans ma Macro1. Et si ma variable affichage est à FAUX alors l'affichage de mon bloc note s'effectue.

Merci pour ton aide précieuse, ça m'a bien orienté vers la solution.

Bonne journée.
0