Bonjour, Salut Steelson !
Tu ne vas pas me dire qu'écrire une ligne :
Worksheets("xxx").Range("B" & a) = 30
est hors de ta portée !?
Le ciblage de la cellule ne dépend alors plus de la feuille active au moment de l'exécution, c'est donc nettement plus fiable, et VBA n'a pas à chercher quelle est cette feuille active, c'est donc plus rapide !
Tu dois aussi savoir si tu regardes de près le code de Steelson, que la variable déclarée niveau module l'est avec Public parce qu'elle est initialisée à partir d'un autre module et ne pourrait être atteinte si déclarée avec Dim (limitant l'accessibilité au module).
Enfin, il faut aussi que tu notes que ta méthode d'emboîtement des appels de procédures, telle qu'ébauchée, soit Test est lancée, s'exécute et appelle Test2... laquelle pourrait alors appeler Test3, qui appellerait à son tour Test4...
Une telle méthode est plutôt à éviter car elle accroît inutilement ta pile d'appels : toutes les procédures demeurent en effet en cours d'exécution tant que la dernière ne s'est pas achevée, c'est pourquoi il est préférable d'appeler une série de procédures secondaires à partir d'une même procédure principale afin de limiter l'extension de la pile.
Cordialement.