Calcul sur ordre

benoua

XLDnaute Occasionnel
Bonjour à tous

J'ai un fichier contenant moultes formules et dont le calcul prend environ 45mn à chaque fois... Ces formules n'ont pas besoin d'être actualisées à chaque fois et j'aimerai savoir si c'est possible de mettre dans le code du classeur que le calcul automatique soit désactivée à l'ouverture et à la fermeture et faire un bouton à l'intérieur qui permette de faire la mise à jour des calculs?
Cocher "Calcul sur ordre" dans les options désactive le calcul automatique en permanence sur excel et c'est contraignant pour le travail sur mes autres classeur.
 
G

Guest

Guest
Re : Calcul sur ordre

Bonjour Benoua,

Dans le module ThisWorkbook:

'Sur activation du classeur
Private Sub Workbook_Activate()
Application.Calculation = xlCalculationManual
End Sub

'Désactivation du classeur (un autre est activé ou celui-ci est fermé)
Private Sub Workbook_Deactivate()
Application.Calculation = xlCalculationAutomatic
End Sub


Puis créer un bouton (Menu Affichage/Barre d'outils/Boîte à outils Controles)sur une feuille du classeur concerné et dans le code de ce bouton:

Application.Calculate

A bientôt
 

Kotov

XLDnaute Impliqué
Re : Calcul sur ordre

Bonjour,
Quelques lignes pour gérer le calcul à la demande :

Pour stopper le calcul automatique :
Application.Calculation = xlCalculationManual

Pour calculer à la demande (quand tu veux)
Application.Calculate

Pour remettre le calcul automatique à la sortie de la macro, ou du fichier
Application.Calculation = xlCalculationAutomatic



Bon après midi
Kotov
 

benoua

XLDnaute Occasionnel
Re : Calcul sur ordre

ok merci hasco et kotov!
et sinon avec ce code même lors de la sauvegarde il ne fera pas de recalcul?
le bouton doit être répété sur chacune des feuilles ayant besoin d'être recalculée où il fait tout le classeur quand on clique sur le bouton?
 
G

Guest

Guest
Re : Calcul sur ordre

Re,

Pour le bouton, il relancera le calcul pour tous les classeurs ouverts pour toutes les feuilles ayant besoin d'être recalculées.

Pour la fermeture du classeur: il sera reclaculé puisqu'on demande le recalcul dans l'évènement Deactivate (Pour que les autres classeur ouverts puissent être calculé lorsqu'ils sont activé).

Tu laisses:
'Sur activation du classeur
Private Sub Workbook_Activate()
Application.Calculation = xlCalculationManual
End Sub

et le reste tu enlève. Par contre pour calculer tes autres classeurs tu devra faire F9 qui est la touche pour lancer un recalcul.

A bientôt
 

Statistiques des forums

Discussions
312 347
Messages
2 087 501
Membres
103 563
dernier inscrit
samyezzehar