Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour Chers tous
Je voudrais savoir ou et comment définir mes variables (Sinon les constantes) à utiliser dans toute la procédure VBA de mon fichier.
Merci et Bonne journée..
Bonjour.
En tête du module, instruction Private pour qu'elle soient connues seulement dans toutes les procédures du seul module où elles sont déclarées, Public pour qu'elles soient connue aussi bien dans tous les modules du projet que dans les projets différents qui l'auraient cochés dans leurs références.
À noter que dans un module de classe, Public en fait un membre (méthode ou propriété) obligeant, pour l'utiliser à l'extérieur, à le préfixer d'un exemplaire de l'objet.
Bonjour KTM, Dranreb,
Les variables globales ou publique se déclarent avant le SUB, les variables locales après le SUB :
VB:
Public MaVariable As Integer ' Déclaration Variable globale
Public Const MaConstante As Integer = 34 ' Déclaration Constante globale
Sub MaMacro()
Dim MaVariableLocale ' Déclaration Variable globale
Const MaConstantelocale As Integer = 10 ' Déclaration Constante globale
' Programme
'...
End Sub
Les variables globales sont visibles par tous les modules du fichier , et resteront mémorisés jusqu'à la fermeture du fichier.
Les variables locales ne sont visibles que par le module où elles sont déclarées.
Re,
Tout dépend du contexte.
Si les macros Main et Routine sont associées à des boutons par ex, Main initialise "v", mais l'appel à Routine ne connaitra pas la valeur de "v".
Re,
Tout dépend du contexte.
Si les macros Main et Routine sont associées à des boutons par ex, Main initialise "v", mais l'appel à Routine ne connaitra pas la valeur de "v".
Je suis d'accord mais c'est juste une organisation.
Je proscris autant faire ce peux les variables public.
Si notre ami opte pour des variables public je l'invite à renommer la propriété du module pour lui donner un Nom significatif pour retrouver ses variables et ne pas les mélanger avec les méthodes qui les utilisent .
Ce que je signalai à propos des modules de classe s'applique en fait aussi à tous les modules objets, ThisWorkbook, Worksheet et UserForm.
Les éléments y étant déclarés Public en deviennent membres et ne sont accessibles de l'extérieur qu'en les qualifiant d'une expression représentant l'objet.
Ce que je signalai à propos des modules de classe s'applique en fait aussi à tous les modules objets, ThisWorkbook, Worksheet et UserForm.
Les éléments y étant déclarés Public en deviennent membres et ne sont accessibles de l'extérieur qu'en les qualifiant d'une expression représentant l'objet.
Bonjour
sans oublier les variables type qui peuvent nous permettre de classifier nos variable voir créer des contexte
VB:
Public Type mesvariables
variable1 As Long
variable2 As String
variable3 As Double
End Type
Public mesvar As mesvariables 'declaration globale module(dans le module seulement)
'A noter que mesvar peut être un tableau de type
'histoire de corser le tout je crée une variable de même nom en dehors du type
Public variable2
'exemple sub dans le module1
Sub creationContenu()
mesvar.variable1 = 10
mesvar.variable2 = "toto"
mesvar.variable3 = 10.5
variable2 = "titi"
End Sub
'exemple sub dans le module2
'on peut donc lire le contenu de mesvar qui ont été inscrite dans le module1
Sub lectureContenu()
MsgBox mesvar.variable2 & " a acheté " & mesvar.variable1 & " bannanes pour " & mesvar.variable3 & " euros"
End Sub
'exemple sub dans le module3
'les donnée peuvent être inscrites dans la même sub
Sub creationAndlectureContenu2()
mesvar.variable1 = 10
mesvar.variable2 = "robert"
mesvar.variable3 = 2.5
MsgBox mesvar.variable2 & " a courru " & mesvar.variable1 & " en " & mesvar.variable3 & " heures"
End Sub
Sub lectureContenu3()
MsgBox mesvar.variable2 & " et " & variable2 & " on marché " & mesvar.variable1 & " kilomètres en " & mesvar.variable3 & " heures"
End Sub
lancez d'abords la sub creationcontenu
Attention au piege des variable public
nous avons tous notre style et pour certains certains réflexes ,on a souvent l'habitude de nommer nos variables d'une certaine façon
il arrive que l'on fasse des doublons
le type est bien pour ça car on peut avoir deux variable de même nom (une module) et (une dans le type )
je vous l'accorde c'est extrême et vertigineux mais ça reste une possibilité
j'en montre un exemple d'ailleurs dans ce cette petite esquisse ci dessus
patrick
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD