J'ai un tableur avec plusieurs macros. Généralement, lorsqu’il utilisait précédemment Excel 2007, un utilisateur clique sur un bouton et tout fonctionne comme prévu (calculs, envoi d’e-mails et entrées / sorties de fichiers). En règle générale, le temps d'exécution prévu est d'environ 90 secondes. La feuille de calcul est un fichier xlsm créé avec Excel 2007.
Cependant, avec Excel 2010, le même processus utilisateur génère un excel non réactif et nous oblige à tuer Excel du gestionnaire de tâches.
Certains notent que j'ai rassemblé jusqu'ici en essayant de déboguer ce problème:
- Lors de la surveillance de l'utilisation du processeur, il semble qu'Excel lance la macro. L’utilisation du processeur augmente comme prévu d'environ 47% pendant quelques secondes. Excel.exe que passe à 0% d'utilisation et j'ai maintenant un Excel non réactif (même après 1 heure).
- Si je définis des points d'arrêt de débogage sur des modules et des fonctions différentes et que je parcours le code (après avoir cliqué sur le bouton), le processus fonctionne comme prévu, bien que beaucoup plus lentement. Pour ajouter, il n'y avait aucune exception.
Je suis complètement perdu quant à la nature du problème. Au départ, je pensais que c’était peut-être l’add-in qui était utilisé, mais c’était corrigé au point 2.
Cela semble être une situation très étrange. Je peux fournir plus d'informations si nécessaire, mais je ne comprends pas très bien pourquoi. J'ai besoin d'aide pour diagnostiquer et résoudre ce problème.
.ScreenUpdating=True
et du débogage par élimination, essayez d'insérer Debug.Print Now(), 'some marker text'
toutes les quelques lignes. Ensuite, jetez un coup d'œil à la fenêtre Immediate pendant que le code est en cours d'exécution et voyez si et où il se bloque. Puis, réduisez-le dans la zone où il se bloque en ajoutant plus d'instructions d'impression / en éliminant du code.