Fermeture fichier sur fermeture userform

abalny

XLDnaute Nouveau
Bonsoir à tous,

Je voudrais savoir s'il est possible de provoquer la fermeture du fichier lorsqu'on clic sur la croix en haut à droite d'un Userform.
Sur le Userform que j'affiche en plein écran, j'ai placé un bouton permettant de le fermer et d'enregistrer le fichier, mais je voudrais empêcher que les utilisateurs puissent accéder aux autres feuilles du classeur en fermant le Userform et donc en forçant la fermeture du fichier.
Dans l'idéal, il faudrait que le clic sur la croix demande un mot de passe, qui autoriserais l'utilisateur à fermer le Userform s'il a le code ou a fermer le fichier si le code est mauvais.

Merci pour votre aide.
A+
 

JNP

XLDnaute Barbatruc
Re : Fermeture fichier sur fermeture userform

Bonjour Albany, Bruno :),
Dans "l'idéal" :p
Code:
Private Sub UserForm_Terminate()
Dim Réponse As String
Réponse = InputBox("Mot de passe ?")
If Réponse = "Toto" Then Exit Sub
ThisWorkbook.Close SaveChanges:=False
End Sub
Bonne soirée :cool:
 

abalny

XLDnaute Nouveau
Re : Fermeture fichier sur fermeture userform

Bonjour à tous et merci pour vos réponses !

C'est vrai que j'ai encore du mal à effectuer des recherches sur ce forum, je n'avais même pas pensé à passer par le net !!

La réponse de CARCHARODON répond parfaitement à mon problème.
Génial
 

abalny

XLDnaute Nouveau
Re : Fermeture fichier sur fermeture userform

Bonsoir,

J'ai testé un peu trop rapidement hier : en fait, la macro de CARCHARODON est celle qui me fallait pour empêcher les utilisateurs d'accéder aux feuilles sans le bon mot de passe lorsquil clic sur la croix, mais par contre, la boite de dialogue qui demande le mot de passe apparait aussi lorsque l'utilisateur demande à quitter le Userform en cliquant sur le bouton que j'ai mis sur le Userform.

Voici le code que j'ai associé au bouton :

Private Sub quitter_Click()
ThisWorkbook.Save
Unload Me
ThisWorkbook.Close
End Sub


J'avoue que je ne comprend pas pourquoi la boite de dialogue de mot de passe s'ouvre avec ce code.
Pouvez_vous m'expliquer pourquoi ?

Merci d'avance.
Alain
 

laetitia90

XLDnaute Barbatruc
Re : Fermeture fichier sur fermeture userform

bonjour tous
c'est normal??

Code:
Private Sub quitter_Click()
ThisWorkbook.Save
Unload Me
ThisWorkbook.Close
End Sub
du moment ou tu quitte
unload me tu appel
Code:
UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
est vu que dedans il y a un code il renvoit le message
il faut ecrire tout ton code differament

si pas de reponse je te ferais cela demain

pas le temps
 

JNP

XLDnaute Barbatruc
Re : Fermeture fichier sur fermeture userform

Re :),
Même si tu n'as pas donné signe de vie sur mon code (qui fonctionnait aussi, et était plus court :p...), la modification du code de CC qui à mal aux dents (private joke :D)...
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormCode Then Exit Sub
Dim message
message = InputBox("mot de passe demandé!" & Chr(13) & "MERCI!")    'boite de dialogue demandant la saisie
If message = "CC" Then
    Unload Me
Else
    ThisWorkbook.Save
    ThisWorkbook.Close
End If
End Sub
Bonne soirée :cool:
 

abalny

XLDnaute Nouveau
Re : Fermeture fichier sur fermeture userform

Merci à tous !!!
Toutes vos solutions fonctionnent très bien...
c'est vrai que JNP propose des codes plus rapides (ou plutôt plus courts...) que ceux de CC (hihihi!!!!!); mais y'a le contexte du beaujolpif nouveau.....!!!!!
En tous les cas, vous êtes des mines de savoir et c'est un régal de vous voir échanger , proposer des solutions... On vous croirais en compétition... C'est vraiment un super forum !!!!
merci encore
a+
Alain
 

Discussions similaires

Statistiques des forums

Discussions
312 495
Messages
2 088 966
Membres
103 993
dernier inscrit
Essens