accélérer une fonction

tinet

XLDnaute Impliqué
bonjour à tous,

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.

En attente d'une solution merci.
 

Pierrot93

XLDnaute Barbatruc
Re : accélérer une fonction

Bonjour,

essaye peut être ceci :

Code:
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...

bonne journée
@+
 
C

Compte Supprimé 979

Guest
Re : accélérer une fonction

Bonjour,

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

A+
 

Discussions similaires

Réponses
12
Affichages
538

Statistiques des forums

Discussions
312 198
Messages
2 086 132
Membres
103 127
dernier inscrit
willwebdesign