Si vous avez une fonction VBA qui transforme Microsoft Excel en une bête gourmande en 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? Le post de questions-réponses du super utilisateur d'aujourd'hui vient à la rescousse pour aider un lecteur frustré à reprendre le contrôle d'Excel.
La session de questions-réponses d'aujourd'hui nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement communautaire de sites Web de questions et réponses.
Galerie d'images de guerriers extraterrestres avec l'aimable autorisation de Clker.com.
La question
Le lecteur superutilisateur learningAsIGo veut 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 votre 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 un grand nombre de formules matricielles géantes. L'ensemble complet des calculs prend environ vingt minutes et utilise les 100 pour cent de mon processeur. Je ne peux pas utiliser mon ordinateur pendant cette période et je préfère qu'Excel s'exécute en arrière-plan’ en portant à peu près le 50 pour cent de ma capacité CPU afin que je puisse continuer à faire d'autres choses.
Toute suggestion? Le système d'exploitation de mon ordinateur est Windows 7 Entreprise de 64 bits avec une version 2007 de 32 morceaux d'excel installés.
Existe-t-il un moyen de limiter l'utilisation du processeur Microsoft Excel lors de l'exécution des fonctions VBA?
La solution
Le partenaire superutilisateur mtone a la solution 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 dans un seul thread.
Vous pouvez limiter le nombre de threads utilisés par Excel pour recalculer les formules en allant dans Les choix et en sélectionnant le Section avancéeet, ensuite, faites défiler jusqu'à ce que vous atteigniez le Formules sous-section.
Avez-vous quelque chose à ajouter à l'explication? Parlez 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..