Bonjour Pat, Patrick et Ti
Tiens, encore un "Cela ne fonctionne pas" :-(
Si tu fais exactement comme j'ai conseillé dans mon post du 02-05-03 18:30 et donc comme te la confirmé Ti le 02-05-03 19:43 il faut déclarer ta Variable dans un module standard (Exemple Module1) tu ne devrais pas avoir de problème de fonctionnement :
- Pour autant que cette déclaration soit faite
avant et en dehors de toute procédure ou fonction
- Pour autant qu'après avoir déclaré ta Variable Public....... Tu l'initialises avant de l'utiliser (of course !! lol)
Voici ce que dit l'aide :
Public, instruction, exemple
Cet exemple utilise l'instruction Public au niveau module (section Général) d'un module standard pour déclarer de manière explicite des variables comme publiques, ce qui signifie qu'elles sont disponibles pour toutes les procédures de tous les modules de toutes les applications à moins que Option Private Module soit activée.
' Variable Integer de type Public.
Public Number As Integer
' Variable tableau de type Public.
Public NameArray(1 To 5) As String
' Plusieurs déclarations, deux de type Variant et une
' de type Integer, toutes Public.
Public MyVar, YourVar, ThisVar As Integer
Sinon pour la réponse de Patrick, On dirait que c'est juste pour embrouiller le poisson, car "Global" te retournera sur "Public, Instruction" dans l'aide VBA... Donc ce que nous t'avons expliqué au dessus... J'ai un peu l'impression qu'il n'y a pas de différence et que Global serait plutôt l'ancienne dénommination... Enfin corrigez moi si il y a une défférence !
J'ai retrouvé aussi un post de Laurent Longre qui dit ceci, qui m'apprend que l'on peut récupérer une variable déclarée Public dans un Private Module, celà peut s'avérer interressant dans certains cas de figures...
From: Laurent Longre (laurent.longre@free.fr)
Subject: Re: variable globale, public ...
Newsgroups: microsoft.public.fr.excel
Date: 2000/01/07
Pour utiliser une variable ou une constante accessible à partir de tous
les modules du classeur, il faut utiliser le mot-clé Public. La variable
ou constante doit être déclarée au niveau du module (pas à l'intérieur
d'une procédure ou d'une fonction).
Par exemple :
Public MaVariable As String
Public Const NotreDéesseATous As String = "Zaza"
S'il s'agit d'une variable déclarée dans un *module objet* (module de
feuille de calcul, ThisWorkbook, module de classe ou UserForm), il faut
"préfixer" la variable par le nom du module pour y accéder à partir d'un
autre module.
Par exemple, si tu déclares dans le module de la feuille de calcul
Feuil1 la variable suivante:
Public QuiEstLaPlusBelleEnCeMiroir As String
Dans les autres modules, il faudra utiliser
Feuil1.QuiEstLaPlusBelleEnCeMiroir pour accéder au contenu de cette
variable:
Feuil1.QuiEstLaPlusBelleEnCeMiroir = "Zaza"
MsgBox Feuil1.QuiEstLaPlusBelleEnCeMiroir
En revanche, à l'intérieur du module Feuil1, il n'y a pas besoin de ce
préfixe. Et ceci ne concerne que les modules objets, non pas les modules
standard.
Enfin, on ne peut pas définir de constantes *publiques* à l'intérieur de
modules objet, uniquement des variables.
Cordialement,
Laurent
Voilà du coup j'ai fait ma révision du Dimanche grace à ce fil
Bon Dimanche (super Beau ici)
@+Thierry
PS oui oui Ti pas pas le Point