VBA 2010-Variable publique se vide?

Résolu/Fermé
Uspa - 9 nov. 2011 à 16:48
 uspa - 9 nov. 2011 à 23:26
Bonjour,
Suite à la création d'une trop longue procédure j'ai du la scinder en 2 procédures. Les variables que j'utilise dans la 2ième procédure proviennent de la 1ère mais elles se vident.
J'ai donc supprimé la définition par Dim dans la procédure pour les définir par Public avant les procédures (dans la section "Déclarations").
Les calculs de la 1ère procédure se font normalement mais mes variables sont toujours vides dans la 2ième.
Quelqu'un peut m'aider à résoudre ce problème?

Merci pour votre aide


3 réponses

Bonjour

J'ai donc supprimé la définition par Dim dans LA procédure
Dans LES 2 procedures, sinon ça ne marche pas.
5
Merci beaucoup.
C'était bien sûr trivial. Je pensais l'avoir supprimé de la première procédure à tort.
Cela fonctionne maintenant normalement.
PS: on peut donc définir une variable "Public" dans "Déclarations" et dans un module sans avoir de message d'erreur. La déclaration dans le module étant prioritaire.

Encore merci pour votre réponse rapide
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 9/11/2011 à 17:13
Bonjour
par ex
sub numero2(machin, truc)    
msgbox machin 'renvoie toto
.......    
end sub    

dans ta sub numero1     
dim tavarA as string, tavarB as integer    
tavarA="toto"    
tavarB=1234    
numero2 tavarA, tavarB    
.......    
end sub 


les 2 procédures peuvent être dans des modules différents
Michel
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
9 nov. 2011 à 19:19
Bonjour tou(te)s
Tu dis..
La déclaration dans le module étant prioritaire.
Absolument pas, la variable dans la procédure est prioritaire
Si tu déclare une variable Public dans un module ET la même variable dans une procédure la variable de la procédure sera initialisée DANS la procédure mais ne serra pas visible dans les autres.
Pour que la variable soit vue partout il ne faut la déclarer qu'une seule fois en Public.
A+
0
Ooops! Merci pour la correction.
J'ai inversé procédure et module dans mon texte.
0