Module et Macro

craig974

XLDnaute Occasionnel
Bonjour,

Je souhaiterais connaitre votre avis sur la place des macros dans les modules.

Ayant 5 macros de plus de 100 lignes, elles se trouvent pour le moment dans 5 module différent ayant des nom proche de ceux des macros (afin de les situer plus facilement). Donc de ce fait dès que j'appelle une macro je dois faire Call NomModule.NomMacro .

Je voudrais savoir qu'elle est l'attitude à privilégier devant ce "problème". Faut il que je laisse mes macros dans des modules séparés ou alors que je regroupe toute les macros dans un même module ?

Merci d'avance pour votre réponse.

Objectif: faire que le "code" soit le plus lisible et le plus utilisable possible
 

craig974

XLDnaute Occasionnel
Re : Module et Macro

Est ce que le fait que j'ai renommé mes modules (exemple Module1=MonModule), ne m'oblige pas à devoir écrire MonModule.MaMacro ? J'avais l'impression que votre solution ne marche que si le nom de mes modules reste Module, Module2, ..., Module5 mon impression était peut être mauvaise.
 

craig974

XLDnaute Occasionnel
Re : Module et Macro

Mes macros sont en Sub ... End Sub et mon code sur événement Private Sub ... End Sub et ça ne marche pas.
En essayant avec les macros en Public Sub ... End Sub et mon code sur événement Private Sub ... End Sub et ça ne marche pas non plus.
Faut il que j'essaye avec les macros en Public Sub ... End Sub et mon code sur événement Public Sub ... End Sub ?
 

craig974

XLDnaute Occasionnel
Re : Module et Macro

En faite des mes événementielles je lance mes macros qui sont dans mes modules, ce n'est jamais l'inverse qui se produit c'est pour ça que j'ai que Sub dans mes macros et Private Sub dans mes événementielles.
Donc des mes évenementielles (private sub) lorsque je veux appeler une macro qui est dans un module je dois faire call NomModule.NomMacro (avec macro étant un sub ) si je ne fais que call NomMacro, j'ai le message d'erreur suivant "Variable ou procédure attendue, et non un module." (Est ce que le problème n'ai du qu'au fait que je n'utilise pas les bonnes "introductions" Sub Private Sub Public ...) ou peut être que je ne devrais pas appeler mon module et ma macro de la même manière (et donc il ne fait pas la différence, alors que si je met un nom différent il sait que tel nom c'est un module et tel nom une macro).
 

craig974

XLDnaute Occasionnel
Re : Module et Macro

Je crois bien que mon problème venait du fait que j'avais mis des noms identiques en modifiant le nom du module je n'ai plus besoin de le mettre devant le nom de la macro. Ca m'apprendra à ne pas essayer de distinguer au maximum les choses !

En revenant à ma première question cela te semble t il légitime de faire un module par macro (en sachant que mes macros font plus de 100 lignes) ?
 
Dernière édition:

Jam

XLDnaute Accro
Re : Module et Macro

Salut craig, pierrot,

1. Utiliser des noms identiques n'est jamais une bonne idées. Il vaut mieux utiliser des préfixes du type modMON_MODULE ou sMASTRING, etc...non seulement pour les identifier mais aussi rendre le code plus lisible
2. Séparer les macros dans des modules différents n'est pas une mauvaise choses en terme de lisibilité et pour son côté pratique, néanmoins il est conseillé pour des questions de performance de tout regrouper dans un seul module malgré tout cela n'aura quasiment aucun impact mesurable au quotidien.
3. Pour l'instruction Call, va voir Les fiches VBA - Les syntaxes fondamentales qui est très instructif sur son utilité

Bon courage
 

Discussions similaires