La version de votre navigateur est obsolète. Nous vous recommandons vivement d'actualiser votre navigateur vers la dernière version.

Paramètres de sécurité pour exécuter des macros VBA dans Excel

Afin de pouvoir contrôler le mode d’exécution des macros sur les classeurs, Excel met à la disposition des utilisateurs des paramètres de sécurité à choisir selon le besoin. Pour accéder à ces paramètres, il faut cliquer sur Option->Centre de gestion de la confidentialité->Paramètres de Centre de gestion de la confidentialité: 

Excel Paramètres Sécurité VBA 1

Ensuite cliquer sur Paramètres des macros.

Excel Paramètres sécurité VBA 2 

Nous avons ainsi quatre options de sécurité :

  • Désactiver toutes les macros sans notification : En cochant cette option aucune macro VBA ne peut s’exécuter et ceci sans aucune alerte de système.
  • Désactiver toutes les macros avec notification : Dans ce cas aucune macro ne fonctionne mais Excel nous informe avec ce message :

 Excel Paramètres Sécurité 3

  • Désactiver toutes les macros à l’exception des macros signées numériquement : Une macro signée signifie qu’elle a une garantie que sa source est fiable et ne présente pas un risque sur votre ordinateur. Ce type de macros est systématiquement exécuté, il ne subit pas les contrôles de paramètre de sécurité. Afin que nous puissions signer nos macros, il faut tout d’abord avoir une certification auprès d’une autorité de certification externe. Sinon, nous pouvons créer nos propres certifications en utilisant l’outil SelfCert.exe mais qui ne sont valable que sur notre poste de travail, c’est une garantie locale qui permet d’éviter de passer les contrôles de sécurité chaque fois que nous lançons un programme et en même temps garder un niveau haut de sécurité. Une fois nous avons une certification, la signature de la macro se fait en suivant les étapes suivantes :
    1. Dans l’éditeur VBA cliquer sur Outil->Signature électronique :Excel Paramètres Sécurité VBA 4
    2. Un formulaire s’ouvre pour choisir une certification, il faut sélectionner une et valider. Dans le cas où aucun certificat n’existe sur le poste, le système affiche le massage suivant :

Excel Paramètres Sécurité 5

  • Activer toutes les macros : Cette option permet d’exécuter systématiquement toutes les macros quelques soient leurs origines, et sans faire aucun filtre. C’est une option qui présente un risque, car il peut y avoir des virus ou des macros nuisibles au système surtout en téléchargeant des fichiers sur le net. Donc cette option est déconseillée.

Emplacements approuvés

Le fait de placer un fichier dans un emplacement approuvé, permet qu’il ne soit pas vérifié par le centre de gestion de la confidentialité, et par conséquent même si les macros sont désactivées, ce fichier s’exécute. C’est le même cas pour un fichier signé, mais cette fois-ci sa garantie est son emplacement au lieu de la signature.

 Pour ajouter un emplacement approuvé, cliquer sur Option → Centre de gestion de la confidentialité → Paramètres de Centre de gestion de la confidentialité → Emplacement approuvé :

Excel Paramètres Sécurité VBA 6 

Documents approuvés

En ouvrant un fichier non signé, et si l’option de sécurité choisi est de désactiver toutes les macros non signées », le système fait une alerte et désactive les macros. Si l’utilisateur approuve ce fichier en activant son contenu, ce fichier devient approuvé, et le système ne le bloque pas à la prochaine ouverture. 

Excel Paramètres Sécurité VBA 7 

La sécurité des procédures programmées « Projet »

Il existe des macros particulières, qui manipulent le code d’une autre procédure dans le classeur actif ou bien dans un autre classeur. C’est une macro qui manipule des macros. La sécurité de ce genre des macros est particulière, il ne suffit pas que le contenu du fichier soit approuvé pour qu’elles s’exécutent. Prenant un exemple, le code suivant permet de copier le code dans un module « M_A_Exporter » dans un module « Monmodule » à créer dans un autre classeur :

Excel Paramètres Sécurité VBA 8

En exécutant, nous aurons le bug suivant :

Excel Paramètres Sécurité VBA 9

Afin d’autoriser l’accès par programme aux projets VBA, il faut cocher une option dans les paramètres des macros :

Option à Centre de gestion de la confidentialitéà  Paramètres de Centre de gestion de la confidentialité :

Excel Paramètres Sécurité VBA 10