22Aug

Comment limiter l'utilisation du processeur Microsoft Excel lors de l'exécution des fonctions VBA?

Si vous avez une fonction VBA qui transforme Microsoft Excel en une bête grignotante du processeur, est-il possible d'apprivoiser les choses afin que vous puissiez continuer à utiliser votre ordinateur pour d'autres activités pendant qu'Excel termine? Le SuperUser Q & A post d'aujourd'hui vient à la rescousse pour aider un lecteur frustré à reprendre Excel sous contrôle.

Question d'aujourd'hui &La session de réponse nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement communautaire de sites Web Q & A.

Alien guerrier clipart courtoisie de Clker.com .

La question Lecteur

SuperUser learningAsIGo veut savoir s'il existe un moyen de limiter l'utilisation du processeur Microsoft Excel lors de l'exécution d'un script VBA sur son ordinateur:

Y at-il un moyen de limiter l'utilisation du processeur Microsoft Excel? J'ai un script VBA qui calcule une grande quantité de formules matricielles géantes. L'ensemble des calculs prend environ vingt minutes et utilise 100% de mon processeur. Je ne suis pas en mesure d'utiliser mon ordinateur pendant cette période et je préférerais qu'Excel fonctionne en arrière-plan tout en utilisant environ 50% de la capacité de mon processeur pour que je puisse continuer à faire autre chose.

Des suggestions? Le système d'exploitation de mon ordinateur est Windows 7 Enterprise 64 bits avec une version 32 bits 2007 d'Excel.

Y at-il un moyen de limiter l'utilisation du processeur de Microsoft Excel lors de l'exécution des fonctions VBA?

La réponse

SuperUser contributeur 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, alors cela devrait certainement utiliser la fonction de calcul multi-thread dansMicrosoft Excel. Respectivement, cela exécuterait plusieurs instances de votre fonction VBA pour chaque formule, ou recalculer 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 Advanced Section , puis en faisant défiler vers le bas jusqu'à atteindre la sous-section Formules .

Avoir quelque chose à ajouter à l'explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d'autres utilisateurs de Stack Exchange? Découvrez le fil de discussion complet ici.