[Résolu]pb avec Workbook_BeforeClose

yuplop

XLDnaute Nouveau
Bonjour,

J'ai un classeur 1 qui remplie automatiquement un classeur 2 avec des données. Le classeur 2 ayant certaines macro assez "lourde", j'ai mis dans le ThisWorkbook de celui ci:
Code:
Private Sub Workbook_Open()
    With Application
        xlCalc = .Calculation
        .Calculation = xlCalculationManual
        .EnableEvents = False
        .ScreenUpdating = False
    End With
    
End Sub

Par contre, pour ne pas polluer les autres classeurs, à la fermeture de ce classeur 2, j'ai mis en place:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox ("plop")
    With Application
        xlCalc = .Calculation
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .ScreenUpdating = False
    End With
End Sub

Cette seconde partie ne fonctionne pas: pas de message "msgbox" et les calculs restent en manuel.

Est ce que j'ai fait une erreur qq-part?

Merci de votre aide,
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Yuplop, bonjour le forum,

À partir du moment où tu écris
Application.EnableEvents = False, tu désactives toutes les macro événementielles. Par conséquent, la macro événementielle BeforeClose n'est pas exécutée.
Une solution, il te faudrait créer dans un module standard une macro du Style :

Sub Macro1()
Application.EnableEvents = True
End Sub
que tu lancerais en dernier et là, la procédure BeforeClose sera exécutée.
 

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch