Fermeture fichier depuis un CommandButton, impossible.
Bonjour,
Mon classeur est protégé à partir de la procédure "workbook open"
Dans ThisWorkbook :
Code:
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:
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:
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.