Compilation de macros et déclarations de variables

Bonjour le forum,

J'ai deux problématiques à ce jour pour lesquels je souhaite une aide mais aussi des explications (si possible) afin de comprendre.

J'ai réuni plusieurs macros afin d'en faire une macro générale (Voir fichier joint).

Le premier souci est que la première macro (Macro MAJ de la macro générale du fichier joint) ne marche que si je fais un copier/coller de cette macro dans le fichier actif à traiter.

Autrement dit, si j'ouvre le fichier contenant uniquement cette macro (Macro MAJ), que j'ouvre le fichier sur le lequel je veux lancer la macro, la macro ne s'applique pas sur le fichier actif à traiter mais sur le fichier d'origine sur lequel la macro me renvoi ! Pourquoi ?

Les autres macros ne posent aucun problème de ce type là, prises individuellement.

En revanche, lorsque je les associe toutes dans ma macro générale se pose un problème de déclarations de variables (Dim) qui sont propres à chacune mais pas forcément compatibles entre elles dans le cadre de la macro générale.

Cherchant aussi à comprendre, je souhaiterais pouvoir obtenir des commentaires (en vert précédé d'un ') sur ma macro d'origine concernant les incompatibilités de déclarations de variables ainsi que des commentaires sur la macro générale qu'on voudra bien me proposer.

Un grand merci par avance.

Bonsoir,

Mettre bout à bout des codes d'origines diverses, ça n'a jamais fait un programme cohérent et ça ne le fera jamais.

Tout le code est de toute façon conçu pour opérer sur un seul classeur, il n'est donc pas surprenant que ça n'aille plus pareil si on veut l'utiliser avec plusieurs classeurs.

Par ailleurs on note que si certaines des macros anciennement individuelles respectent des règles d'écriture et ont leurs expressions parfaitement qualifiées, ce n'est pas le cas de toutes. Il y a des fragments où les expressions ne sont pas qualifiées et on trouve aussi des opérations appuyées sur des Select... Tout cela peut provoquer des surprises lorsqu'on le sort de son contexte.

Le fait de mettre bout à bout sans s'en préoccuper autrement un certain nombre de macros aboutit à avoir des déclarations dispersées dans le code, au lieu de les avoir comme il est de règle en tête de procédure. Les rassembler aurait au moins permis de les fusionner pour en réduire le nombre et amorcer ainsi un travail d'intégration par une réécriture partielle du code...

A mes débuts, j'avais comme beaucoup tendance à écrire des procédures longues, les conseils reçus me disaient que ce n'était pas la bonne façon de faire, qu'il était plus rationnel d'avoir des procédures courtes, faisant chacune un travail bien défini, et pouvant être appelées pour le faire à plusieurs reprises si nécessaire, et qu'au total j'aurais moins de code et plus facile à maîtriser... Et j'ai bien fini par le constater lorsqu'il a fallu reprendre pour les modifier mes longues procédures.

Utiliser VBA, c'est faire de la programmation, et ça s'apprend. Il vaut mieux éviter de faire n'importe quoi sans demander conseil.

Cordialement.

Rechercher des sujets similaires à "compilation macros declarations variables"