Bonjour,

Mon classeur est protégé à partir de la procédure "workbook open"

Dans ThisWorkbook :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 
    Application.DisplayFullScreen = False 
 
    If SaveAsUI Then
        MsgBox "Désolé, l'option Enregistrer sous... est impossible !", _
            vbExclamation, " Veuillez utiliser fichier / fermer "
        Cancel = True
    Else
        Call Options_Enregistrement
    End If
End Sub
Procédure "Option_Enregistrement" (dans module standard) :

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
22
23
24
25
26
27
28
29
30
31
32
33
34
Sub Options_Enregistrement()
Dim sh As Worksheet
Dim Répertoire As String, Fichier As String, FichierIndexé As String
 
    Application.EnableEvents = True  'pour essai !!
 
    ThisWorkbook.Unprotect "****"  *
    Application.DisplayFullScreen = False  
 
    Répertoire = ThisWorkbook.Path  *
    Fichier = ActiveWorkbook.Name   *
    FichierIndexé = Format(Now, "yyyymmdd-hh""h""nn") & " " & Fichier
 
    With Sheets("Accueil")
        .Visible = True  'problème : La feuille n'apparaît pas !!
        .Activate
        .ScrollArea = "A1:C9"
        .Columns("A:C").Select
            With ActiveWindow
                .Zoom = True
                .Zoom = ActiveWindow.Zoom '- 1.5
            End With
        [b2].Select
       'ActiveWindow.ScrollRow = 1
    End With
 
    For Each sh In ThisWorkbook.Sheets
        If sh.CodeName <> "Feuil1" Then sh.Visible = xlSheetVeryHidden
    Next
 
    ThisWorkbook.Protect "****", True, True  
    ThisWorkbook.SaveCopyAs Répertoire & "\" & FichierIndexé  'à tester !
 
End Sub
Procédure lancée depuis un CommandButton :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Sub OnFerme()
    On Error Resume Next 's'il n'est pas ouvert
    ThisWorkbook.Close
End Sub
Comme indiqué plus haut (cf. problème), la feuille "Accueil" n'apparaît pas et j'ai donc un message "La méthode Range a échoué" lorsque la procédure arrive sur ".Columns("A:C").Select". Et bien sûr, la procédure ne se termine pas normalement.

Merci d'avance pour votre aide.