Variable public ou non

G

G'Claire

Guest
Salut a toutes et tous,

Dans un classeur, j'utilise toujouts la même variable dans qusiment 90 % des UserForms, je me pose donc la question, vaudrait il pas mieux déclarer celle-ci dans un module a part et en public?

Y'a t'il une limite dans le nombres de déclaration variable public, que l'on peu déclaréer?

Je vous remercie de vos réponse sur une question qui est peu être simplette, G'Claire
 
A

Abel

Guest
Bonjour G'Claire,

La variable peut être déclarée en tête d'un des modules.

Je ne suis pas qu'il faille un module particulier pour ça.

J'ai pris l'habitude de faire mes déclarations de variables dans le module "qui commence" les macro.
Mais pourquoi pas garder un module pour ça. Ca devrait fonctionner aussi.

Quant au nombre maxi de variables, s'il y a une limite, je ne la connais pas.

Abel
 
G

G'Claire

Guest
Abel, le forum

Merci, Abel

Pour le moment j'ai un module que j'ai nommé, "MesVariables", ou sont déja présentent des Variable déclarées Publics, alors je peu donc mettre celle-ci en plus car je l'utilise dans une bonnes dizaine d'UserForm, ou vaut mieux laisser tel quel déclaré du genre Dim MaVariable as Byte dans chaque UserForm.

Gagne ton en poids de classeur, en rapidité d'éxécution de déclarer une Variable Public si elle est utilisé tout au long de l'application, peut il y avoir des buggs, Heu que d'interrogation, hihi.

Merci, G'Claire
 
A

Abel

Guest
Bonjour G'Claire,

Le fait de déclarer ta variable en Public la rend visible par tous les modules du projet. Y compris par les codes des UserForm, me semble-t'il. Cela devrait résoudre la question du bug.
Cela évite aussi quelques lignes telles que "Dim MaVariable as Byte" répété plusieurs fois donc, normelement, gain de poids.
Quant à la vitesse, je ne saurais répondre. Si ce n'est qu'il me semble que Dim réserve de la place mémoire donc de la capacité machine.

Peut être quelqu'un d'autre pourra me contredire ou apporter d'autres précisions.
Ces questions m'intéressent également.

A+

Abel.
 
R

Robert

Guest
Salut G'Claire, Abel, le forum,

L'avantage des variables déclarées publiques c'est qu'elles sont accessibles pour tout le projet VBA. L'inconvénient c'est leur durée de vie. Si tu déclares une variable publique puis tu la définis dans un UserForm qui, par exemple, en ouvre un second utilisant la même variable, tu risques de rencontrer des problèmes car cette variable ne sera pas vide ou nulle au départ. Pour éviter les confusions, il est parfois préférable de déclarer plusieurs fois la même variable dans des modules (ou procédures) différents et indépendants ou plusieurs variables différentes dans des modules qui inter-agissent entre eux.
C'est vrai que j'ai souvent vu @+Thierry faire des déclarations publiques de feuilles et c'est très partique. Il utilise même une constante du style : Public Const f1 as String = "Feuil1". Associé à : Public s1 as Worksheet. Ensuite il définit dans une procédure d'initialisation sa feuille avec Set s1 = Sheets(f1).
Ça permet de remplacer chaque fois Sheets("Feuil1") par s1.

C'est à toi d'évaluer si ta variable publique ne vas pas rentrer en conflit au cours des procédures...

À plus,

Robert
 

Discussions similaires

Réponses
12
Affichages
2 K

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 413
Messages
2 088 199
Membres
103 763
dernier inscrit
p.michaux