Si vous travaillez beaucoup avec Excel et VBA, il pourrait vous intéresser de savoir comment exporter le code VBA d'un Projet
et l'importer dans un autre. Ceci s'inscrit dans la méthode de la réutilisation du code informatique: pourquoi écrire un code qui a déjà été écrit?
L'avantage de VBA est que son code est simplement du texte. La méthode la plus facile consiste donc simplement à copier le code d'un Projet
et le coller dans un autre Projet
. Oui, c'est possible. Rapide, simple et suffisant dans un grand nombre de cas. Mais si votre nouveau Projet
n'est pas encore en cours? Allez-vous chercher dans quel fichier Excel votre code se trouve au moment de commencer le nouveau Projet
? Cela peut être fastidieux… C'est pour cela qu'il y a une autre méthode très simple: exporter le code VBA directement dans l'éditeur VBA (le VBE). Et idem pour l'importer.
Exporter le code VBA – comment faire?
Pour exporter le code VBA qui se trouve dans un Module
, il vous suffit de:
- Click droit sur le
Module
à exporter
- Choisissez "Exporter un fichier…"
- Choisissez l'emplacement du fichier
.bas
Le nom par défaut va correspondre au nom duModule
- Enregistrez le fichier
Et c'est tout. Votre code est ainsi exporté et prêt pour une future réutilisation…
Attention: Si vous exportez un Module
, le fichier aura la suffixe .bas
. Si par contre vous voulez exporter le code du ThisWorkbook
, le code contenu dans les Feuilles, dans les Formulaires ou dans une Classe, le fichier exporté aura la suffixe .cls
Importer le code VBA – tout aussi simple
Le code ainsi exporté peut donc être importé dans un autre Projet / Classeur. La procédure est tout aussi simple.
- Click droit sur le Projet
- "Importer un fichier…"
- Choisissez le fichier à importer
- Cliquez sur "Ouvrir"
Selon le type du fichiez que vous importerez, un nouveau Module ou une Classe seront ajoutés à votre Projet. Le nom du Module ou de la Classe correspondra au nom du fichier importé.
Attention: Dans des version plus anciennes, il n'est pas possible d'importer un fichier si un objet avec le même nom est déjà présent dans votre Classeur! Vous devez donc renommer l'objet en question dans le Projet avant d'importer un autre avec le même nom. Dans les versions récentes d'Office, si vous importez un objet avec le même nom, ce nom sera automatiquement adapté avec l'ajout d'un chiffre. Si vous avez un Module nommé "MonModule" et vous voulez importer un module externe avec le même nom, il sera importé en tant que "MonModule1" pour éviter les conflits…
Attention aux Formulaires VBA!
Si vous voulez exporter un Formulaire VBA, faites attention: un formulaire VBA est composé de DEUX fichiers différents!
- un fichier
.FRM
qui contient le code VBA du formulaire - un fichier
.FRX
qui contient le formulaire même (objets, formats,…)
Conclusion de ce tutoriel
Si vous travaillez avec de nombreux Classeurs qui contiennent plusieurs Modules, cette méthode est plus fiable et plus gérable que des copier/coller du code VBA entre les fichiers. Cette méthode est d'ailleurs très simple et très rapide…
Juste une remarque: attention, certains clients de messagerie email (tels que Outlook, Gmail etc.) "n'aiment pas" les fichiers avec les suffixes .BAS
, .CLS
, .FRX
et .FRM
. Vous aurez peut-être du mal à les envoyer par email tels quels. Si c'est le cas, il suffit de changer le suffixe avant l'envoi et le remodifier après la réception. Ou une autre possibilité est de "zipper" le(s) fichier(s) avant l'envoi.
Et si vous êtes intéressés, vous pouvez essayer la Formation VBA gratuit en ligne que je vous propose ici sur Excel-Malin.com…
Pour aller plus loin en VBA
Et pour terminer, voici quelques autres articles sur VBA qui pourraient vous être bien utiles…
- Liste de toutes les fonctions en VBA
- Manipulation des fichiers en VBA
- Comment protéger son code VBA par un mot de passe
- Suivre et enregistrer l'activité des utilisateurs – LOG en VBA
- Calculer la SOMME en VBA
- Comment utiliser RECHERCHEV directement en VBA