Si vous avez une fonction VBA qui transforme Microsoft Excel en une bête grignoteuse de CPU, est-il possible d'apprivoiser les choses afin que vous puissiez continuer à utiliser votre ordinateur pour d'autres activités pendant qu'Excel se termine? L'article de questions-réponses sur les superutilisateurs d'aujourd'hui vient à la rescousse pour aider un lecteur frustré à reprendre le contrôle d'Excel.
La session de questions et réponses d’aujourd’hui nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement de sites Web de questions-réponses géré par la communauté.
Clipart de guerrier extraterrestre avec l'aimable autorisation de Clker.com .
The Question
L'apprentissage du lecteur SuperUser AsIGo souhaite savoir s'il existe un moyen de limiter l'utilisation du processeur de Microsoft Excel lors de l'exécution d'un script VBA sur son ordinateur:
Existe-t-il un moyen de limiter l'utilisation du processeur de Microsoft Excel lorsqu'il est en cours d'exécution? J'ai un script VBA qui calcule une grande quantité de formules de tableau géant. L'ensemble des calculs prend environ vingt minutes et utilise 100% de mon processeur. Je ne parviens pas à utiliser mon ordinateur pendant cette période et je préférerais que Excel «fonctionne en arrière-plan» tout en utilisant environ 50% de la capacité de mon processeur afin de pouvoir continuer à faire d’autres choses.
Aucune suggestion? Le système d'exploitation de mon ordinateur est Windows 7 Entreprise 64 bits avec une version 2007 32 bits d'Excel installée dessus.
Existe-t-il un moyen de limiter l’utilisation du processeur de Microsoft Excel lors de l’exécution des fonctions VBA?
La réponse
Le contributeur SuperUser mtone a la réponse pour nous:
Si une fonction VBA est appelée à partir de plusieurs formules ou si votre script génère ou force le recalcul de plusieurs formules, cela devrait certainement utiliser la fonction de calcul multithread de Microsoft Excel. Respectivement, cela exécuterait plusieurs instances de votre fonction VBA pour chaque formule, ou recalculerait plusieurs cellules simultanément pendant que votre script VBA s'exécute sur un seul thread.
Vous pouvez limiter le nombre de threads utilisés par Excel pour recalculer les formules en accédant à Options et en sélectionnant le Advanced Section , puis faites défiler vers le bas jusqu'à atteindre le Formules sub-section.
![]()
Avez-vous quelque chose à ajouter à l'explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d'autres utilisateurs de Stack Exchange férus de technologie? Consultez le fil de discussion complet ici .