Aller au contenu principal
Mis à jour le

C'est quoi un fichier XLSM ?

Le XLSM est le format de classeur Excel qui peut contenir des macros VBA. Un fichier qui porte cette extension a exactement la même structure interne qu'un classeur ordinaire, avec en plus la partie où le code est rangé. Excel désactive ces macros à l'ouverture, tant qu'on ne les a pas autorisées.

Liste déroulante du type de fichier dans la boîte Enregistrer sous d'Excel, montrant les formats disponibles
Le menu déroulant « Type » de la boîte Enregistrer sous propose le format prenant en charge les macros pour un classeur qui en contient.

À quoi sert le format XLSM dans Excel

Le format XLSM sert à transporter dans un même fichier les données d'un classeur et le code qui les automatise. Depuis 2007, Excel refuse de stocker la moindre macro dans un classeur ordinaire, quel que soit son contenu. Le XLSM est le format qui lève cette limite, et son extension suffit à savoir qu'un fichier est capable de faire tourner du code.

Un fichier de ce type contient souvent un outil plutôt qu'un simple tableau : un budget qui se recalcule tout seul, un formulaire de saisie, un bouton qui génère un rapport. Toute cette mécanique repose sur des macros, et il n'en resterait rien après un enregistrement dans un classeur ordinaire.

L'extension a par ailleurs une seconde fonction, celle d'avertir. Excel, Windows et les serveurs de messagerie la lisent tous de la même façon et traitent le fichier comme du contenu exécutable. Un XLSM déclenche donc des avertissements qu'un classeur ordinaire ne provoque jamais.

Le piège
Une macro s'exécute avec tes propres droits sur la machine, dès la seconde où tu cliques sur Activer le contenu. Un XLSM d'expéditeur inconnu se lit très bien sans jamais toucher à ce bouton.

Comment ouvrir un fichier XLSM

Un fichier XLSM s'ouvre par un double-clic, comme n'importe quel classeur, et son contenu s'affiche en entier. Ce qui change, c'est le sort réservé aux macros, qu'Excel désactive tant que tu ne les as pas autorisées. La barre d'avertissement qui apparaît sous le ruban ne concerne qu'elles, jamais tes données.

  1. 1Double-clique sur le fichier, il s'ouvre dans Excel comme un classeur ordinaire et tu peux lire les données, les formules et la mise en forme sans exécuter la moindre macro.
  2. 2Repère ensuite la barre jaune sous le ruban, « Les macros ont été désactivées », et clique sur le bouton Activer le contenu seulement si tu sais d'où vient le fichier.
  3. 3Si la barre est rouge et n'offre aucun bouton, c'est Windows qui a marqué le fichier comme venu d'Internet. Fais un clic droit dessus dans l'Explorateur, ouvre Propriétés, coche Débloquer en bas de l'onglet Général, puis rouvre le fichier.
  4. 4Sans Excel, Excel pour le web et Google Sheets ouvrent le fichier et affichent son contenu, mais aucun des deux n'exécute le code VBA qu'il transporte.
L'astuce en plus
Le format binaire XLSB, plus légerLe XLSM n'est pas le seul format à garder les macros. Le Classeur Excel binaire, en XLSB, les conserve aussi et produit un fichier nettement plus compact, qui s'ouvre plus vite sur les gros classeurs.

Quelle différence entre un fichier XLSM et un fichier XLSX

Le XLSM peut contenir des macros, alors que le XLSX n'en accepte aucune, et c'est à peu près la seule chose qui les sépare. Tout le reste est identique, les formules, la mise en forme, les graphiques, les tableaux croisés dynamiques et le nombre de feuilles. Les deux reposent sur la même structure de fichier, à laquelle le XLSM ajoute simplement la partie où le code est rangé.

La conséquence tombe à l'enregistrement. Un classeur qui contient du code et que tu enregistres en XLSX ressort vidé de ses macros, sans retour possible, parce que ce format n'a nulle part où les mettre. Excel affiche bien un message avant de le faire, mais il se referme d'un clic et se rate facilement.

La règle de choix est simple. Reste en XLSX par défaut, puisqu'il s'ouvre sans avertissement chez tout le monde et franchit sans encombre les filtres de messagerie. Ne bascule en XLSM que le jour où ton classeur contient réellement du code, jamais par précaution.

Pourquoi les macros d'un fichier XLSM ne s'activent pas

Excel traite tout code venu de l'extérieur comme non approuvé, donc il désactive les macros à l'ouverture et se contente de te le signaler. Le classeur reste parfaitement lisible dans cet état, seules les macros dorment. C'est le réglage par défaut, « Désactiver les macros VBA avec notification », et c'est le bon.

Deux barres se ressemblent pourtant beaucoup sans avoir le même sens. La jaune te laisse décider et propose un bouton Activer le contenu, alors que la rouge n'en propose aucun parce que Windows a marqué le fichier comme téléchargé. Tant que cette marque est là, aucun réglage d'Excel ne débloquera les macros.

Pour un dossier de travail dans lequel tu déposes toi-même tes fichiers, le réglage durable s'appelle l'emplacement approuvé, à ajouter via Fichier > Options > Centre de gestion de la confidentialité. Les classeurs rangés là s'ouvrent macros actives, sans aucune barre. N'y mets jamais ton bureau ni ton dossier Téléchargements, sinon le premier fichier piégé qui y atterrit s'exécute sans prévenir.

Panneau Paramètres des macros du Centre de gestion de la confidentialité d'Excel, avec ses quatre niveaux de sécurité
Le même panneau porte les emplacements approuvés, dans la colonne de gauche, sous une entrée distincte.

Comment enregistrer un classeur Excel au format XLSM

Excel ne bascule pas tout seul, et le format proposé par défaut reste le classeur ordinaire même quand tu viens d'écrire une macro. Pour conserver le code, passe par Fichier puis Enregistrer sous, et déroule la liste des types de fichier située sous la zone du nom. Choisis-y « Classeur Excel prenant en charge les macros (*.xlsm) ».

Un vieux classeur au format XLS suit exactement le même chemin, puisqu'il sait déjà porter des macros de son côté. Ouvre-le, retourne dans Enregistrer sous et sélectionne ce même type de fichier, le code qu'il contenait est conservé dans la copie. Tu récupères au passage les limites étendues des formats modernes, sans rien perdre de ton automatisation.

La conversion inverse, du XLSM vers le XLSX, se fait au même endroit et sert quand tu veux diffuser un fichier sans son code. Choisis alors le type Classeur Excel, en gardant en tête que la copie obtenue n'aura plus aucune macro. Garde donc l'original de côté, lui seul porte encore ton travail d'automatisation.

Le savais-tu ?
L'extension XLSM ne prouve pas qu'il y a des macros dedans. Excel enregistre sans broncher un classeur totalement vide de code sous cette extension, et le fichier reste alors aussi inoffensif qu'un classeur ordinaire.
FAQ

Questions fréquentes sur le XLSM

Va dans Fichier puis Exporter, et clique sur Créer PDF/XPS, ce qui produit un document figé de ce qui est affiché à l'écran. Les macros ne suivent pas, puisqu'un PDF ne peut rien exécuter, et c'est justement l'intérêt quand tu diffuses un rapport à des gens qui n'ont pas besoin de l'outil.