Applications

« L’exécution du code a été interrompue » dans Excel VBA : solutions

En bref :

  • Ce message signifie qu’Excel croit que vous avez appuyé sur Ctrl + Pause : la macro est interrompue sur une ligne sans erreur.
  • Solution rapide : quand la fenêtre s’affiche, cliquez sur Déboguer puis appuyez deux fois sur Ctrl + Pause, puis F5.
  • Solution durable : effacer tous les points d’arrêt (Ctrl + Maj + F9), recompiler, ou exporter/réimporter les modules.

Votre macro fonctionnait, et soudain elle s’arrête à chaque exécution avec « L’exécution du code a été interrompue », toujours sur la même ligne, alors que vous n’avez rien touché. C’est un comportement connu de l’éditeur VBA : d’anciens points d’arrêt « fantômes » ou un état d’interruption resté en mémoire. Voici comment s’en débarrasser.

Comprendre le message

Une macro VBA peut être interrompue volontairement avec Ctrl + Pause (ou Échap). Excel affiche alors ce message et propose Continuer, Fin ou Déboguer. Quand il apparaît sans action de votre part, l’éditeur conserve un ancien point d’arrêt invisible ou un signal d’interruption « collé ».

Solution 1 : la double interruption

  1. Quand le message apparaît, cliquez sur Déboguer.
  2. Appuyez deux fois sur Ctrl + Pause (sur les portables sans touche Pause : Ctrl + Fn + B ou Ctrl + Fn + Pause selon le modèle).
  3. Appuyez sur F5 pour continuer.

Cette manipulation réinitialise souvent l’état d’interruption pour la session.

Solution 2 : effacer les points d’arrêt et recompiler

  1. Dans l’éditeur VBA (Alt + F11) : Débogage > Effacer tous les points d’arrêt (Ctrl + Maj + F9).
  2. Débogage > Compiler VBAProject.
  3. Enregistrez, fermez Excel complètement et rouvrez le fichier.

Solution 3 : exporter et réimporter les modules

Si le problème persiste, le module garde des informations corrompues. Clic droit sur le module > Exporter un fichier (.bas), puis Supprimer le module, et Importer un fichier. Le code est identique, mais nettoyé. Faites de même pour les modules de feuilles en copiant leur code.

Solution 4 : EnableCancelKey (en dernier recours)

Au début de la macro : Application.EnableCancelKey = xlDisabled. Excel ignore alors toute demande d’interruption. Attention : vous ne pourrez plus arrêter une boucle infinie avec Échap ; réservez-le à un code éprouvé, et préférez xlErrorHandler pour gérer l’interruption proprement.

Solution Durée de l’effet Risque
Double Ctrl + Pause Session en cours Aucun
Effacer points d’arrêt + compiler Durable Aucun
Exporter / réimporter Durable Faible (sauvegardez avant)
EnableCancelKey = xlDisabled Durable Impossible d’arrêter une boucle infinie

Prévenir le problème

  • Ajoutez Option Explicit en tête de chaque module et compilez régulièrement (Débogage > Compiler).
  • Retirez les points d’arrêt et les Stop avant de distribuer un classeur.
  • Sauvegardez vos modules exportés (.bas) : ils servent aussi de copie de secours de votre code.

Cas pratique : une macro de facturation

La macro mensuelle de Romain s’arrête sur une ligne Next i sans erreur. Il efface tous les points d’arrêt, compile le projet et redémarre Excel : le problème disparaît. Par sécurité, il exporte ses modules dans un dossier de sauvegarde.

À lire aussi : quand Excel plante, créer un formulaire Excel, surligner la ligne active avec VBA et numéroter automatiquement des factures.

Questions fréquentes

Que signifie « L’exécution du code a été interrompue » ?

Excel a reçu (ou croit avoir reçu) une demande d’interruption Ctrl + Pause.

Pourquoi ma macro s’arrête sans erreur ?

Des points d’arrêt fantômes ou un état d’interruption bloqué dans l’éditeur.

Comment effacer tous les points d’arrêt VBA ?

Ctrl + Maj + F9 dans l’éditeur VBA.

Comment faire Ctrl + Pause sur un portable ?

Souvent Ctrl + Fn + B ou Ctrl + Fn + Pause selon le modèle.

Articles Similaires

Bouton retour en haut de la page