Macro dans une macro

Bonjour,

Je fais appel à vos services !

Dans une macro, (ci-joint le fichier) j'ai une macro principale dans le module MAJOT.

Les premières lignes sont de la "recherche et trouve" entre le premier et le deuxième onglet :

Arrivé à la ligne macro que j'ai repérée avec 'XXXXXXXXX, comme "C" n'est pas trouvée, il passe à la fin de la macro, repérée par 'YYYYYYYYYYYY.

Là, je fais appel à une macro dans un autre module.

Le problème une fois dans le module appelé "AjoutAct", les variables ne sont plus trouvées : "Rng" est vide et ducoup "Rng 2" aussi...

Je ne sais pas comment référencer "Rng" dans ce nouveau module.

La solution trouvée pour le moment serait de rassembler le tout.

Mais cela réduit la simplicité de lecture..

Surtout que dans cette macro principale, je fais appel à plusieurs petites macros.

Ou alors, je ne sais pas si cela est possible, mais il ne faudrait pas que ces autres modules soient des macros, genre des bouts de code que je viendrais chercher avec la macro principale histoire d'aérer celle-ci....

Merci d'avance pour votre aide,

Tchio !

9programmetchio.xlsm (338.34 Ko)

Bonjour,

Un module est destiné à accueillir du code, le nombre de procédures n'est pas limité... Du moins tant que ton projet ne prend pas des dimensions gigantesques il n'y a pas de raison de multiplier les modules.

4 modules standard, c'est 3 de trop, s'il n'y a pas de justification spécifique à isoler telle ou telle partie du code. Justement, une des raisons de créer un second module standard est pour y placer des variables hors d'atteinte à partir d'un autre module !

Alors 4 modules pour 4 procédures... !

Merci pour ta réponse,

Oui, effectivement et comme vous dites cela évite les problèmes avec les variables entre les modules...

Il n'y a donc pas de solution pour placer ces parties de code répétitifs et longs des trois autres modules ?

J'ai même essayé de placer ces 3 autres modules à la chaine de la macro principales.. mais même résultat.

Merci,

Il y a divers moyens de jongler avec la portée des variables et des procédures entre différents modules... Mais il faut les utiliser avec discernement pour que le résultat reste rationnel.

En l'état actuel, plus d'un module est une gêne et n'apporte aucun avantage.

Quant à ce que tu nommes parties de code répétitif, si des opérations sont répétées semblablement, il est toujours préférable de chercher à en faire une procédure (Function ou Sub selon le cas) appelable par celles qui en auront besoin. On gagne en volume de code et en efficacité.

Mais je dois dire que je ne me suis pas penché sur ton code... [Je considère pour que le code soit lisible il doit être indenté selon des règles précises (pas au petit bonheur), et pour la journée je suis à saturation de code non indenté, donc je ne lis plus ! ]

Cordialement.

Merci pour ta réponse,

J'ai indenté mon code au mieux.. ce n'est peut-être pas l'idéal..

Je vais me rapprocher de l'idéal pour que celui-ci reste le plus lisible possible, après avoir regroupé les 4 modules en 1.

Merci !

J'apprécie l'effort ! Remets un fichier après avoir rassemblé le tout...

Rechercher des sujets similaires à "macro"