Comment certifier gratuitement une macro VBA sur Excel ?
Aujourd’hui, nous allons aborder la question de la sécurité des macro-commandes dans Excel. Nous allons en effet voire comment approuver un classeur contenant une ou plusieurs macro-commandes VBA pour pouvoir l’utiliser facilement, sans avoir à activer les macros. Pour cela, nous découvrirons le concept de certificat d'auto-authentification.
Tutoriel Vidéo
1. Présentation
Pour illustrer ce tutoriel, nous allons utiliser un fichier Excel, contenant deux macros très simple :
- Une première macro est chargée de se lancer au démarrage pour afficher un message à l’utilisateur,
- Une seconde macro, qui se lance lors d’un clic sur un bouton doit afficher l’heure à l’utilisateur
Lors de l’ouverture de ce fichier, nous pouvons constater que par défaut, Excel désactive tout accès aux macro-commandes VBA.
Un bandeau de couleur jaune nous invitera en effet à activer les macros pour pouvoir les utiliser :
Sans cette validation, il sera tout simplement impossible de l’utiliser les macros de ce classeur.
Bien entendu, il est possible de baisser le niveau de sécurité exigé par Excel, ce qui aura pour effet de ne plus jamais afficher ce bandeau.
Pour cela, nous nous rendons dans le menu Fichier > Options Centre de gestion de la confidentialité > Paramètres du centre de gestion de la confidentialité > Paramètre des macros, puis de choisir Activer toutes les macros (non recommandé ; risque d’exécution de code potentiellement dangereux) :
De cette manière, nous pourrons lancer des classeurs contenant des macros, sans que l’avertissement que nous venons de voir ne soit affiché dans le futur.
Mais cela peut présenter un risque important en termes de sécurité !
En effet, il est très simple d’injecté une macro à l’intérieur d’un classeur qui pourrait causer des dégâts importants sur le poste de travail sur lequel se trouve le classeur.
Lorsque nous baissons le niveau de sécurité à son niveau le plus bas, il faut donc faire attention de n’ouvrir que des classeurs dont la provenance connue et sûre.
Heureusement il existe une autre solution qui permettra de pouvoir se passer de cette validation pour les classeurs dont nous sommes certains de l’origine, en utilisant pour cela ce que l’on appelle un certificat.
2. Créer un certificat
Pour pouvoir créer un certificat qui permettra d'authentifier la provenance du classeur contenant une macro commande nous allons devoir utiliser un outil.
Cet outil porte le nom de SELFCERT.EXE et se trouve déjà préinstallé sur la plupart des postes de travail contenant Office.
L’emplacement dans lequel vous trouverez cet outil dépend de la version d’office utiliser sur le poste de travail, ainsi que de la version du système d’exploitation.
Pour Excel 2016 sous Windows 10, celui-ci se trouve dans le répertoire suivant : « C:\Program Files (x86)\Microsoft Office\root\Office16 »
Nous pouvons alors lancer l’application en double-cliquant sur celle-ci :
L’application nous demande alors quel nom nous souhaitons donner au certificat, par exemple « Macro VBA » :
Ensuite, nous validons la création du certificat en appuyant sur le bouton [OK].
Un message nous informe ensuite de la bonne création du certificat.
3. Utiliser le certificat
Une fois le certificat correctement généré, nous allons pouvoir l’intégrer dans le projet VBA.
Pour cela, nous revenons à l’intérieur de celui-ci, puis nous nous rendons dans le menu Outils > Signature électronique…
Dans la fenêtre qui s’affiche à l’écran nous pouvons constater qu’aucun certificat n’est rattaché au projet « [Aucun certificat] » :
Pour lier le certificat, nous pouvons cliquer sur le bouton [Choisir] pour sélectionner le certificat
Excel retrouve alors le certificat, il suffit ensuite de cliquer sur le bouton [OK] pour l’intégrer dans le projet :
Il ne reste plus qu’à adapter le niveau de sécurité d’Excel en revenant dans le menu Fichier > Options Centre de gestion de la confidentialité > Paramètres du centre de gestion de la confidentialité > Paramètre des macros, puis de choisir Désactiver toutes les macros à l’exception des macros signées numériquement :
Maintenant nous pouvons redémarrer Excel et le classeur signé.
Excel nous affiche encore une fois le message d’activation des macros, il suffit d’approuver pour ne plus le faire disparaître lors des futurs lancements.
4. Partage des fichiers signés
Le certificat que nous venons de mettre en place permettra ainsi de lancer les fichiers avec des macro-commandes en toute sécurité sur le poste de travail sur lequel il a été généré.
Lorsque nous transmettons un classeur contenant un certificat sur un autre poste de travail, il sera possible d’installer automatiquement le certificat en consultant ces propriétés.
Cela permettra ainsi de pouvoir utiliser le fichier sur plusieurs postes de travail.
En revanche, si le fichier venait à être modifié sur un poste de travail ne disposant pas du certificat, cela aurait pour conséquence de supprimer la signature du fichier.