Variables globales

mimi_939 Messages postés 50 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 3 août 2007 - 5 juil. 2007 à 10:48
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 5 juil. 2007 à 18:41
Bonjour,
Je voulais savoir comment faire pour déclarer une variable globale dans un Sub tel que :
Private Sub Worksheet_Change(ByVal Target As Range)
---
End Sub

J'ai besoin de déclarer une variable dans un module et l'utiliser dans un autre module.
Sauf que dans la configuration ci-dessus, ça provoque une erreur!
?

7 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 juil. 2007 à 10:51
Bonjour,

Une variable globale ?
Soit elle est publique et déclarée dans un module, soit elle est privée et déclarée avant toute procédure ou fonction (tout en haut du code donc)
Elle ne peut l'être dans une procédure.
0
mimi_939 Messages postés 50 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 3 août 2007
5 juil. 2007 à 11:00
En réalité, j'ai besoin de déclarer une variable dans une feuille ( car je fais un traitement lorsqu'il y a changement dans cette feuille) et j'ai besoin d'utiliser cette même variable dans un module. Est-ce que c'est possible ?

Merci.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 juil. 2007 à 11:06
Qu'appeles-tu donc une feuille ? Une Form ?
J'espère qu'il ne s'agit pas d'une feuille d'Excel (tu es ici dans la section VB6 et pas VBA !)

De toutes manières, une variable déclarée publique dans un module est accessible de partout ailleurs (du moins sous VB6... je ne connais pas VBA).
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
5 juil. 2007 à 11:13
Salut,
Hélas c'est bien du VBA.

Mais de toute facon, si tu déclare dans ton module, ta variable (Public MaVariable As Integer)

Tu pourras l'utiliser PARTOUT meme dans le code de tes feuilles

@+: Ju£i?n
Pensez: Réponse acceptée
0

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

Posez votre question
mimi_939 Messages postés 50 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 3 août 2007
5 juil. 2007 à 11:18
Oui, il s'agit d'une form. C'est là que la variable est déclarée et pas dans le module! Je veux seulement l'utiliser dans le module.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 juil. 2007 à 11:22
Quatrième édition :
Déclare-la donc dans le module.

Si la dite variable ne doit être modifiée et lue QUE DEPUIS le module, tu peux l'y déclarer en Private.
Si par contre elle doit pouvoir être accessible (lue et modifiée) depuis ailleurs : il est nécessaire que tu l'y déclares en Public.
Est-ce maintenant suffisamment clair ?
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 juil. 2007 à 18:41
Global est l'appellation obsolète des anciennes versions de VB, encore supportée par VB6, mais obsolète.
La remplacer par Public

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
0
Rejoignez-nous