VBA 2010-Variable publique se vide?

Résolu
Uspa -  
 uspa -
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

  1. le père
     
    Bonjour

    J'ai donc supprimé la définition par Dim dans LA procédure
    Dans LES 2 procedures, sinon ça ne marche pas.
    5
    1. uspa
       
      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
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. uspa
       
      Ooops! Merci pour la correction.
      J'ai inversé procédure et module dans mon texte.
      0