[VBA] Comment empêcher les recalculs automatique à l'ouverture/fermeture d'un fichier

Silencee

XLDnaute Nouveau
Bonjour à tous,

Je travaille actuellement sur un fichier assez lourd avec beaucoup de formules.

Pour éviter de faire ramer l'ordi à chaque fois qu'on touche à une cellule, j'ai rajouté le code suivant :

Code:
Option Explicit

Private Sub Workbook_Activate()

    Application.Calculation = xlCalculationManual
    Application.CalculateBeforeSave = False

End Sub


Private Sub Workbook_Deactivate()

    Application.Calculation = xlCalculationAutomatic

End Sub

Ca marche plûtot bien mais j'ai un problème à l'ouverture et à la fermeture du fichier. Il veut à chaque fois recalculer. Que pourrait-on rajouter pour l'éviter ?

J'ai essayé avec la condition "Open" mais ça ne change rien.

Merci d'avance.
 

Misange

XLDnaute Barbatruc
Re : [VBA] Comment empêcher les recalculs automatique à l'ouverture/fermeture d'un fi

Bonjour

dans le module thisworkbook, mets
Private Sub Workbook_open()
Application.Calculation = xlCalculationManual
End Sub

et dans le workbook_beforeclose
Application.CalculateBeforeSave = False
 

Silencee

XLDnaute Nouveau
Re : [VBA] Comment empêcher les recalculs automatique à l'ouverture/fermeture d'un fi

Bonjour Misange,

J'ai malhreusement déjà essayé cette méthode et cela ne change rien.

J'ai donc cela dans le module thisworkbook :

Code:
Option Explicit

Private Sub Workbook_Activate()
    Application.Calculation = xlCalculationManual
    Application.CalculateBeforeSave = False
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.CalculateBeforeSave = False
End Sub

Private Sub Workbook_Deactivate()
    Application.Calculation = xlCalculationAutomatic
End Sub

Private Sub Workbook_open()
    Application.Calculation = xlCalculationManual
End Sub

:confused:
 

Misange

XLDnaute Barbatruc
Re : [VBA] Comment empêcher les recalculs automatique à l'ouverture/fermeture d'un fi

Ceci fonctionne chez moi
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.CalculateBeforeSave = False
    ActiveWorkbook.Close savechanges:=False
End Sub

Private Sub Workbook_open()
    Application.Calculation = xlCalculationManual
End Sub
Private Sub Workbook_Deactivate()
    Application.Calculation = xlCalculationAutomatic
End Sub

mais en revanche à l'activation (pas à l'ouverture) du classeur ça recalcule
 

Silencee

XLDnaute Nouveau
Re : [VBA] Comment empêcher les recalculs automatique à l'ouverture/fermeture d'un fi

Re-bonjour,

Malheuresement, le fait de rajouter cette ligne :"ActiveWorkbook.Close savechanges:=False" ferme mon fichier certes sans calculer mais aussi sans enregistrer. En changeant le False en True, on enregistre bien mais justement si on ne veut pas enregistrer on est coincé!
Je souhaiterais toujours avoir cette boîte de dialogue où on a le choix mais sans la recalculation. Je ne comprend pas pourquoi la ligne "Application.CalculateBeforeSave = False" n'a aucun effet chez moi.

De plus, il faut absolument que je garde le bout de code pour la réactivation du classeur car sinon le fichier resterais en automatique et c'est ce que je souhaite éviter.
 

Discussions similaires

Réponses
8
Affichages
651

Statistiques des forums

Discussions
312 191
Messages
2 086 052
Membres
103 109
dernier inscrit
boso_vs_viking