Comment exporter et importer des modules VBA d'Excel ?
Dans ce tutoriel, nous allons découvrir comment faire passer des modules VBA d’un classeur Excel vers un autre pour récupérer facilement des portions de codes VBA et ainsi gagner du temps dans le développement de vos applications Excel.
Et surtout, restez bien jusqu’à la fin de ce tutoriel, car nous y découvrirons l’outil de gestion des modules qui permet de centraliser simplement vos modules principaux en un seul et même endroit, afin de pourvoir importer très facilement vos macros les plus importantes.
Tutoriel Vidéo
1. Introduction
Si vous développez régulièrement des applications en VBA, vous devez savoir à quel point il peut courant de devoir répéter les mêmes lignes de codes d’un projet à un autre.
Pour optimiser le process de développement, que ce soit en VBA comme c’est le cas ici, mais aussi dans n’importe quel autre langage il est donc souvent recommandé, voir indispensable de récupérer des bribes de codes d’une application à l’autre.
Bien entendu, la méthode la plus simple et la plus rapide consiste à effectuer de simples copier-coller de ces portions de codes.
Mais cela nécessite d’ouvrir le fichier Excel contenant le code à récupérer, puis de sélectionner le code en question afin de le copier.
Pour peu que nous ne nous souvenions plus forcément de quel classeur exactement il s’agit, cette opération peut nécessiter un certain temps.
C’est pourquoi, VBE, l’éditeur de code VBA dispose d’une fonctionnalité d’exportation et d’importation des modules intégré directement dans son interface.
C’est justement ce que nous allons découvrir dans ce tutoriel.
COMMANDER IE MODULES :
2. Comment exporter et importer un module VBA ?
Pour illustrer ce tutoriel, nous allons utiliser un classeur Excel que vous devriez connaitre si vous suivez les tutoriels de la chaîne, il s’agit en effet de celui qui nous a permis de gérer les fichiers contenus dans un dossier avec des liens hypertextes gérés automatiquement :
Vous retrouverez ce tutoriel en cliquant ici.
Comme d’habitude, pour visualiser le code VBA, nous devons lancer l’éditeur de code en appuyant sur les touches [Alt]+[F11]. Il existe bien entendu d’autres méthodes pour lancer VBE, mais celle-ci est la plus rapide.
Sur la partie gauche de l’interface, nous retrouvons l’explorateur de projet, avec les différents modules de celui-ci :
Ici, le projet n’est composé que d’un seul module : « Module_creerLien ».
Pour l’exporter tout d’abord, c’est très simple, il suffit en effet d’effectuer un clic-droit sur celui-ci pour cliquer sur « Exporter un fichier… » :
Ensuite, nous sélectionnons le dossier dans lequel nous souhaitons envoyer le fichier :
Ensuite, pour récupérer ce module dans un autre projet, il suffira d’effectuer un nouveau clic-droit à l’intérieur de celui-ci et de sélectionner cette fois-ci « Importer un fichier » depuis le même menu contextuel :
Le module se retrouve maintenant intégrer dans le nouveau fichier.
Nous pouvons également noter que lorsque nous souhaitons supprimer un module d’un projet, alors VBE nous proposera automatiquement de l’exporter afin d’en conserver une copie de sauvegarde :
COMMANDER IE MODULES :
3. Encore plus rapide : le glisser-déposer de modules
Cette opération d’exporter et d’importation des modules est très pratique pour transmettre des informations d’un projet vers un autre.
Mais lorsque les deux projets sont actuellement ouverts, il est également possible d’utiliser une petite astuce qui permettra de réaliser cette opération beaucoup plus rapidement.
Il suffit en effet de sélectionner le module à exporter, puis de le faire glisser directement dans le projet de destination :
Le curseur de la souris se pare alors d’un petit plus, et il suffit de lâcher le bouton de la souris pour dupliquer automatiquement le module sur le deuxième projet.
Il s’agit bien d’une duplication, ce qui signifie que le module original reste bien en place dans le module d’origine, avec une copie exacte dans le module de destination.
COMMANDER IE MODULES :
4. Comment exporter et importer des modules en VBA ?
Bien entendu, il est également possible d’exporter et d’importer un module donné en utilisant du code VBA.
Pour cela, nous pouvons utiliser les méthodes Export et Import.
Il s’agit de méthodes de l’objet vbComponents, qui est lui-même un sous-objet de VBProject.
Tout d’abord, pour exporter un module nous, nous commençons par créer une variable que nous appelons chemin, dans laquelle nous enregistrons le chemin complet du fichier, avec l’extension « *.bas » :
Sub exportModule()
Dim chemin As String
chemin = "c:\temp\export.bas"
End Sub
Puis nous appelons la méthode Export de cette manière :
ThisWorkbook.VBProject.VBComponents("Module_creerLien").Export chemin
Ici, nous exportons le module « Module_creerLien » sous le nom « export.bas » dans le dossier « c:\temp ».
Pour récupérer le module, nous utilisons ensuite la méthode Import :
Sub importModule()
Dim chemin As String
chemin = "c:\temp\export.bas"
ThisWorkbook.VBProject.VBComponents.Import chemin
End Sub
De cette manière, le module se trouve une seconde fois dans le projet :
Comme vous pouvez le constater, le nom que nous donnons au fichier (« export.bas ») n’a pas de lien avec le nom du module.
COMMANDER IE MODULES :
5. Le gestionnaire de modules
Pour simplifier le process d’enregistrement et de récupération des modules de code, j’utilise depuis quelques temps un outil que j’ai décidé de mettre à votre disposition.
Cet outil, nommé « IE Module » est constitué d’une simple fenêtre qui permet de gérer les modules dans un dossier donné :
Il suffit ensuite de sélectionner le module à sauvegarder en sélectionnant le classeur Excel, puis le module en question et en cliquant sur le bouton Exporter :
Celui-ci se trouve alors enregistré dans le dossier défini, et il sera possible de le retrouver à n’importe quel moment pour l’importer dans le classeur de votre choix en procédant de la même manière, c’est-à-dire en sélectionnant le classeur de destination sur la partie gauche, puis en sélectionnant le module sur la partie droite, et enfin en cliquant sur le bouton Importer :
Bien entendu, pour vous y retrouver facilement dans tous modules, pensez à donner des noms explicites à ces derniers.
COMMANDER IE MODULES :