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 : 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
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