Bonjour,

Je tourne en rond depuis... des jours.

Workbook_BeforeClose exécute les sous-routines parfaitement si je ferme le classeur en cliquant sur "la croix"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sh As Worksheet
Stop
 
    Call Stop_Tempo
    Call Test_Répertoire
 
    ThisWorkbook.SaveCopyAs Répertoire & "\" & FichierIndexé
 
    ThisWorkbook.Unprotect ""
 
    Feuil01.Visible = xlSheetVisible
    For Each Sh In ThisWorkbook.Sheets
        If Sh.CodeName <> "Feuil01" Then Sh.Visible = xlSheetVeryHidden
    Next
 
    ThisWorkbook.Protect "", True, True
 
    If Application.Workbooks.Count = 1 Then Application.Quit
 
End Sub
Si Workbook_BeforeClose est lancé depuis la procédure qui suit, la copie du classeur et l'affichage de la Feuil01 ne s'exécute pas !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Sub Test_Affichage_UF() 
 
    If UserForm1.Visible = False Then
        UserForm1.Show
    Else
        Unload UserForm1
'        Call Test_Répertoire
'        ThisWorkbook.SaveCopyAs Répertoire & "\" & FichierIndexé  'ne fonctionne pas si placé dans BeforeClose !
        ActiveWorkbook.Close SaveChanges:=True 
    End If
End Sub
... ce qui me contraint à (re)mettre :

ThisWorkbook.SaveCopyAs Répertoire & "\" & FichierIndexé 'ne fonctionne pas si placé dans BeforeClose !
dans ce module !

Je précise qu'il n'y a pas de :

Application.EnableEvents = False
dans les procédures intermédiaires.

Qu'est-ce qui peut "inhiber" l'exécution d'une procédure dans Workbook_BeforeClose ?

En vous remerciant d'avance pour votre aide,
Cdt