MsgBox dans Workbook.BeforeClose ne fonctionne pas
Bonjour le forum,
Je viens de finir un petit outil Excel qui possède une page d’accueil qui s'appelle "Country" qui permet de sélectionner un pays dans une liste puis lorsque le pays est choisi, la feuille se masque pour faire apparaître d'autres feuilles à remplir en fonction du pays sélectionné ("ASCE 7-10","SANS",...). Jusque là tout va bien. Ensuite, je souhaite que lorsque l'utilisateur décide de fermer le classeur excel, une série d'actions s'exécutent :
1) Une msgbox apparaît lorsqu'il clique sur la croix pour fermer le classeur : "Etes vous sure de vouloir fermer ce classeur?" Si non on annule la fermeture et rien ne change. Si oui alors,
2) Fermer toutes les feuilles activent et faire apparaître uniquement la page d'accueil "Country"
3) Fermer le classeur sans enregistrer
Avec ma macro je n'ai pas tout à fait cela mais plutôt :
1) La msgbox apparaît mais lorsque je clique sur "non" le classeur se ferme quand même sans pour autant exécuter la macro "oui". Si je clique sur oui,
2) la feuille "Country" apparaît et les autres feuilles sont bien masquées mais j'ai à nouveau la msgbox qui me redemande si je suis bien sure de vouloir fermer le classeur
3) Aucun soucis le classeur se ferme sans enregistrer
Pour résumer, j'ai des soucis avec le bouton "non" de la msgbox qui ne fait pas l'action souhaitée et j'ai un souci avec le fait qu'il me demande deux fois de suite si je veux fermer le classeur.
voici le code qui se situe dans ThisWorkbook
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
| Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("Are you sure you want to close this document?", 36, "WARNING") = vbNo Then
Cancel = True
Else
Application.ScreenUpdating = False
ThisWorkbook.Unprotect Password:="ExoPass"
Sheets("ASCE 7-10").Unprotect Password:="ExoPass"
Sheets("SANS").Unprotect Password:="ExoPass"
Sheets("Country").Visible = True
Sheets("ASCE 7-10").Visible = False
Sheets("SANS").Visible = False
Sheets("SANS Wind&Seismic").Visible = False
Sheets("SANS Information").Visible = False
Sheets("ASCE Information").Visible = False
ThisWorkbook.Protect Password:="ExoPass"
Application.ScreenUpdating = True
ActiveWorkbook.Saved = True
ActiveWorkbook.Close savechanges:=False
End If
End Sub |
J'espère être assez claire. Merci d'avance pour votre aide.
Julie