Lors d’une discussion rapide sur Twitter, j’ai fait part de mon amusement pour les fichiers Excel qui se ferme automatiquement, laissant généralement les utilisateurs assez inquiets (oui c’est méchant…). Alors pour vous faire partager mon plaisir sadique, voici comment procéder.
Commençons par ouvrir le fichier sur lequel vous souhaitez appliquer ce code. Je vous recommande de faire une copie de la version normale avant de faire cette modification. On ne sait jamais, n’allez pas vous piéger vous-même. Ensuite, lancer l’éditeur Visual Basic (ALT + F11 ou sur le bouton de la barre d’onglet).
Dans la fenêtre en haut à gauche, vous verrez le dossier des feuilles et du classeur, ainsi que celui des modules de codes.
Double-cliquez sur Module 1 pour ouvrir la feuille dans la partie droite de l’éditeur Visual Basic. Si vous ne voyez pas de Module créé dans le dossier (donc pas de dossier modules), il suffit d’en créer un. Cliquez sur le bouton de création de module comm

e dans l’image ci-dessous :
Une fois la feuille ouverte, intégrez le code suivant :
Sub arret()
ActiveWorkbook.Close True
End Sub
La macro est ainsi créée. Nous avons défini une macro arret qui ferme le classeur. Dans l’état actuel, nous pourrions l’affecter à un bouton et s’en servir pour fermer le classeur. Mais là, nous allons la déclencher sur un évènement (procédure évènementielle) et en l’occurrence un décompte de temps, nous prendrons ici 10 sec.
Toujours dans le cadre en haut à gauche, double-cliquez sur ThisWorkbook. Dans la page de droite, saisissez le code suivant :
Private Sub Workbook_Open()
temp = Now + TimeValue(« 00:00:10 »)
Application.OnTime temp, « arret »
End Sub
Avec ce code, nous disons au fichier que quand il s’ouvre, il commence à décompter 10 secondes avant de lancer la macro « arret ».
Enregistrez votre fichier, mais attention, il vous faudra modifier l’extension pour .xlsm propre aux fichiers avec macros, sinon, elle ne fonctionnera pas.
Fermez le et essayez de le ré-ouvrir au bout de 10 secondes, il se fermera. Vous n’avez pas fini de vous faire des « amis » avec ce genre de code. Mais c’est aussi utile pour éviter que les fichiers ne restent ouverts des heures (prévoyez quand même un enregistrement dans la macro de fermeture.
Bon amusement !