Comment limiter l'utilisation du processeur de Microsoft Excel lors de l'exécution de fonctions VBA?
Si vous utilisez une fonction VBA qui transforme Microsoft Excel en une bête grignotante pour le processeur, est-il possible de minimiser les risques afin que vous puissiez continuer à utiliser votre ordinateur pour d’autres activités pendant que Excel termine? Le message Q & R de SuperUser d'aujourd'hui vient à la rescousse pour aider un lecteur frustré à retrouver Excel sous contrôle.
La séance de questions et réponses d'aujourd'hui nous est offerte par SuperUser, une sous-division de Stack Exchange, un groupe de sites Web de questions-réponses dirigé par la communauté..
Image clipart guerrier étranger courtoisie de Clker.com.
La question
SuperUser reader learningAsIGo souhaite savoir s’il est possible 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 peux pas utiliser mon ordinateur pendant ce temps et préférerais qu'Excel «tourne en arrière-plan» tout en utilisant environ 50% de la capacité de mon processeur, de sorte que je puisse continuer à faire autre chose..
Aucune suggestion? Le système d'exploitation de mon ordinateur est Windows 7 Entreprise 64 bits avec une version Excel 32 bits 2007 installée sur celui-ci..
Existe-t-il un moyen de limiter l'utilisation du processeur de Microsoft Excel lors de l'exécution de fonctions VBA?
La réponse
Supertone utilisateur mtone contributeur 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, vous devez utiliser la fonctionnalité 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écutait sur un seul thread..
Vous pouvez limiter le nombre de threads utilisés par Excel pour recalculer les formules en allant à Les options et en sélectionnant le Section avancée, puis en faisant défiler jusqu'à ce que vous atteignez la Formules sous-section.
Avez-vous quelque chose à ajouter à l'explication? Sound off dans les commentaires. Voulez-vous lire plus de réponses d'autres utilisateurs de Stack Exchange doués en technologie? Découvrez le fil de discussion complet ici.