j'ai créé une macro qui doit exécuter des tâches automatiques sur un fichier.
le lancement de ces tâches est relativement longue, ce qui ralentit énormément d'exécution de excel.
J'avais trouvé à une époque une fonction à rajouter qui permettait d'accélérer les fonctions en VBA.
Il me semble que cette fonction masquée l'exécution à l'écran du calcul, ce qui permettait de gagner du temps.
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
'ton code
With Application
.ScreenUpdating = False
.Calculation = xlCalculationAutomatic
End With
A voir également s'il n'y a pas lieu de désactiver ponctuellement les procédures événementieles :
Code:
Application.EnableEvents = False
ne pas oublier de remettre la propriété à "true" en fin de procédure...
En complément de ce qu'à donné Pierrot93 (que je salue )
Tu peux ajouter aussi : EnableEvents
Ce qui empêche les évènements diverses lors de la modification de cellules ou autre
VB:
With Application
.EnableEvents = False
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
'ton code
With Application
.EnableEvents = True
.ScreenUpdating = False
.Calculation = xlCalculationAutomatic
End With