Ma macro met à jour une feuille de calcul volumineuse avec des nombres, mais elle s'exécute très lentement car Excel restitue le résultat lorsqu'il le calcule. Comment puis-je arrêter Excel de rendre la sortie jusqu'à ce que la macro est terminée?Comment empêcher Excel de rendre la feuille de calcul comme ma macro le calcule?
Répondre
J'utilise les deux solutions proposées:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Vous pouvez désactiver le calcul automatique dans la boîte de dialogue d'options, il le règle de sorte qu'il ne calcule que lorsque vous appuyez sur F9.
Application.ScreenUpdating = False
Et bien sûr le remettre à nouveau vrai lorsque vous avez terminé, même si une erreur est soulevée. Exemple:
Public Sub MyMacro
On Error GoTo ErrHandler
Application.ScreenUpdating = False
... do my stuff that might raise an error
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
Application.ScreenUpdating = True
... Do something with the error, e.g. MsgBox
End Sub
appuyant sur Joe et SEER (celui-ci utilise l'ancienne syntaxe il est donc compatible avec VBA Office 2000):
On Error Goto AfterCalculation
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
...
AfterCalculation:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Je préfère aussi utiliser les deux solutions proposées, mais en gardant aussi le mode de calcul précédent des utilisateurs.
Pour cette application particulière cela pourrait être pas trop grave, mais il est généralement préférable pratique de laisser les utilisateurs ont leurs paramètres restaurés après votre procédure est terminée:
Application.ScreenUpdating = False
PreviousCalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
NB. Il vaut également la peine d'insérer une erreur de traitement qui active Application.ScreenUpdating en cas d'erreur dans votre code générique;) Si la mémoire est bonne, Excel ne montrera aucun message d'erreur, etc., lorsque ScreenUpdating = false. Quelque chose comme ceci:
Sub DoSomeThing
On Error Goto DisplayError
Application.ScreenUpdating = False
PreviousCalcMode = Application.Calculation
Application.Calculation = xlCalculationManual
...
...
...
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
Exit Sub
DisplayError:
Application.Calculation = PreviousCalcMode
Application.ScreenUpdating = True
MsgBox Err.Description
End 'This stops execution of macro, in some macros this might not be what you want'
'(i.e you might want to close files etc)'
End Sub
- 1. Excel feuille de calcul
- 2. Winforms hébergement feuille de calcul Excel
- 3. Comment lire la feuille de calcul xml
- 4. Feuille de calcul partagée avec des macros dans Excel 2003
- 5. Excel VBA Macro
- 6. C# Accès à la feuille de calcul Excel
- 7. Excel: Remplir une feuille de calcul avec des lignes correspondantes
- 8. Ouvrir la feuille de calcul du fichier Excel dans l'URL
- 9. Capture de l'événement Click dans une feuille de calcul Excel
- 10. Comment automatiser une feuille de calcul
- 11. Quelle est la meilleure façon d'obtenir la dernière feuille de calcul non vide dans Excel (VBA)
- 12. Une feuille de calcul Excel peut-elle être utilisée comme FDU?
- 13. Masquage d'une feuille de calcul Excel avec VBA
- 14. Comment puis-je empêcher Excel 2003 de se bloquer après l'ouverture d'une feuille de calcul dans Internet Explorer?
- 15. Feuille de calcul de DataTable
- 16. Importation de colonnes de feuille de calcul Excel dans la base de données SQL Server
- 17. Comment créer xml plist pour Xcode à partir de la feuille de calcul Excel
- 18. VB.net: Comment obtenir des données de la feuille de calcul Excel à l'objet chaîne?
- 19. Comment créer une table SQL et la remplir avec des données de feuille de calcul Excel?
- 20. Ouverture de la connexion ADO à la feuille de calcul Excel dans VBA
- 21. Obtention de l'ID de la feuille de calcul Excel à l'aide de OLE
- 22. Charger par programme le fichier CSV dans la feuille de calcul Excel (Delphi 7)
- 23. Comment intégrer le contenu d'une feuille de calcul Excel dans un e-mail en C#?
- 24. Comment fournir une feuille de calcul Excel via le service Web
- 25. Excel avec Macro
- 26. PHP: transformer le tableau HTML en feuille de calcul?
- 27. manipulation de feuille Excel
- 28. Comment extraire le design de la table en feuille Excel?
- 29. Projet feuille Excel Références
- 30. Outil d'importation de feuilles de calcul Excel
ma macro ne fonctionne que quand je l'exécute donc je suis bien à cet égard, mais je ne veux pas regarder la copie Excel autour des données (comme spécifié par la macro), seulement le résultat final – Oskar