Excel envoie fréquemment un message « ne répond pas » lorsque Brian traite l’un de plusieurs classeurs. Il s’interroge sur la meilleure façon de diagnostiquer et de corriger un tel problème.

Il y a un certain nombre de choses que vous pourriez vérifier, mais plutôt que de réinventer la roue ici, je vais simplement fournir quelques conseils vers des informations utiles. Le meilleur endroit pour vérifier peut en fait être la base de connaissances Microsoft. Il y a deux articles qui seront utiles. Le premier article que vous voudrez consulter est celui-ci:

https://support.microsoft.com/en-gb/kb/2758592

L’article se concentre principalement sur les éléments externes à ce qui se trouve dans votre classeur, chacun d’entre eux pouvant affecter le fonctionnement d’Excel avec vos données. Si vous pensez que le problème peut être davantage lié à ce qui se trouve dans votre classeur (les données elles-mêmes, la façon dont elles sont formatées et les objets supplémentaires), vous voudrez vous référer à cet article:

https://support.microsoft.com/en-us/kb/2735548

Bien entendu, le problème n’est peut-être pas du tout lié à vos données ou à des éléments externes. Si le message «ne répond pas» s’affiche lorsque vous exécutez une macro, cela peut être dû à la macro elle-même. Si tel est le cas, vous voudrez dépoussiérer vos compétences de débogage et déterminer si vous avez une erreur logique dans la macro qui la fait entrer dans une boucle infinie. (Qu’est-ce qu’une boucle infinie? Une série d’étapes répétées pour toujours parce que les conditions qui arrêteraient naturellement la répétition ne sont jamais rencontrées.) Si tel est le cas, vous devrez changer la macro pour vous assurer que la condition de boucle infinie ne fonctionne pas. t se produire.

Bien sûr, il se peut que votre macro travaille aussi dur que possible et que cela prenne très, très longtemps. Dans de tels cas, Excel semble «désactiver» le traitement de premier plan (ce que vous voyez dans le classeur) jusqu’à ce que la macro exécutée en arrière-plan soit terminée.

Une façon de modérer un peu cela est de placer une commande DoEvents dans votre code de macro. Cela amène VBA à reprendre son souffle et à exécuter tous les « événements »

qui se sont accumulés alors qu’il était si occupé à exécuter du code qu’il a ignoré tout le reste. En d’autres termes, cela oblige VBA à autoriser Excel à «répondre», de sorte que le message «ne répond pas» n’apparaît pas.

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (13435) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.