Salut, a tous!
Je vais présenter succintement mon problème:
J'ai une première série de classeurs (1 par projet) avec plusieurs modules et de nombreuses variables publiques. Un module permet d'initialiser ces variables en parcourant les feuilles du classeurs.
J'ai un second classeur ou une macro doit ouvrir séquentiellement chacun des classeur de la première série, lancer la subroutine d'initialisation des ces classeurs et copier ces variables dans des variables du second classeur.

Un pti exemple est surement plus parlant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
Public NombrePays As Integer, NombreRégions as Integer,...
Public Sub RecupParams()
 
Call InfosFichiers
Dim i As Integer
For i = 1 To Nombre_Classeurs
    Workbooks.Open Tableau(i), 3, , , "MC Wacko"
    Application.Run (Tableau(i) & "!InitParams") 'ca marche
    NombrePays = [Tableau(i)].Module7.NbPays 'ca bloque
    NombreRégions = [Tableau(i)].Module7.NbRégions 'pareil
    ....
    ....
Next i
End Sub
Le nom de mes classeurs est stocké dans un tableau, je peux ouvrir chacun des classeurs. l'appel de la subroutine via le ApplicationRun ne pose pas de problème mais impossible de récuperer des variables d'un autre classeur initialisées avec InitParams avec la bien que celles ci soient publiques