Modifier une variable globale

Résolu/Fermé
Saturnin G Messages postés 43 Date d'inscription dimanche 13 mars 2011 Statut Membre Dernière intervention 23 mai 2014 - 26 juil. 2013 à 11:56
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 26 juil. 2013 à 14:03
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

melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
26 juil. 2013 à 11:59
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
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
26 juil. 2013 à 12:01
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
Saturnin G Messages postés 43 Date d'inscription dimanche 13 mars 2011 Statut Membre Dernière intervention 23 mai 2014
26 juil. 2013 à 12:27
Mais comment faire si je veux initialiser ma variable globale après l'avoir déclarée ?
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
26 juil. 2013 à 13:04
tu mets sa valeur dans la macro en première ligne.
0
Saturnin G Messages postés 43 Date d'inscription dimanche 13 mars 2011 Statut Membre Dernière intervention 23 mai 2014
26 juil. 2013 à 13:41
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
Saturnin G Messages postés 43 Date d'inscription dimanche 13 mars 2011 Statut Membre Dernière intervention 23 mai 2014
26 juil. 2013 à 13:56
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