Workbook_Open ne fonctionne pas correctement avec Excel

Signaler
Messages postés
9
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
4 janvier 2009
-
jybse
Messages postés
9
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
4 janvier 2009
-
Bonjour à tous,
J'ai une macro Workbook_Open() qui marche lorsque j'ouvre mon classeur pour la première fois dans une session Excel, mais si je ferme mon classeur en ayant fait une BeforeSave, que je reste dans Excel et que je rouvre mon classeur, la macro Workbook_Open() ne fonctionne plus (je dois refermer Excel et le rouvrir). Voici le code :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = True Then
FileSaveName = Application.GetSaveAsFilename( _
fileFilter:="Xls Files (*.xls), *.xls")
If FileSaveName <> False Then
Application.ScreenUpdating = False
ThisWorkbook.Unprotect "password"
Sheets("Titre").Visible = False
Sheets("Avis").Visible = True
Sheets("Resultat").Visible = False
ThisWorkbook.Protect "password"
Application.EnableEvents = False
ThisWorkbook.SaveAs FileSaveName
Application.EnableEvents = True
ThisWorkbook.Unprotect "password"
Sheets("Titre").Visible = True
Sheets("Avis").Visible = False
Sheets("Resultat").Visible = True
ThisWorkbook.Protect "password"
' puis, pour ne pas être invité inutilement à enregistrer si on quitte
ThisWorkbook.Saved = True
End If
Cancel = True
Exit Sub
End If
Application.ScreenUpdating = False
ThisWorkbook.Unprotect "password"
Sheets("Titre").Visible = False
Sheets("Avis").Visible = True
Sheets("Resultat").Visible = False
ThisWorkbook.Protect "password"
Application.EnableEvents = False
ThisWorkbook.Save
Application.EnableEvents = True
ThisWorkbook.Unprotect "password"
Sheets("Titre").Visible = True
Sheets("Avis").Visible = False
Sheets("Resultat").Visible = True
ThisWorkbook.Protect "password"
' puis, pour ne pas être invité inutilement à enregistrer si on quitte
ThisWorkbook.Saved = True
Cancel = True
Exit Sub
End Sub

Private Sub Workbook_Open()
Application.ScreenUpdating = False
ThisWorkbook.Unprotect "password"
Sheets("Titre").Visible = True
Sheets("Avis").Visible = False
Sheets("Resultat").Visible = True
CreateCustomMenuWithSubMenus
ThisWorkbook.Protect "password"
Application.ScreenUpdating = True
' puis, pour ne pas être invité inutilement à enregistrer si on quitte
ThisWorkbook.Saved = True
End Sub

Merci d'avance
Jybse

2 réponses

Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
22
Après ThisWorkBook.Saved = True , essaies de rajouter :
ActiveWorkbook.Close

jpleroisse
Messages postés
9
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
4 janvier 2009

Merci pour votre aide, mais ça ne marche pas. De toute façon, je ne souhaite pas quitter après avoir sauvegardé. J'ai essayé votre code : après avoir sauvegardé, Excel m'a demandé si je voulais quitter, j'ai dit oui pour voir, quand j'ai rouvert le classeur, Workbook_Open n'avait pas fonctionné.

Jybse