Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fermeture de fichier

S

St@tman

Guest
Bonsoir le forum

Dans un formulaire sur une feuille, j'ai mis un bouton pour fermer le fichier qui est en plein écran. Voilà le code (que j'ai récupéré)

Sub Quitter()

Msg = "Vous voulez vraiment quitter le programme ?"
Style = vbYesNo + vbQuestion + vbDefaultButton1
Title = "Programme de St@tman" ' ici c'est clair tu mettra le nom de ton programme
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
Msg = "Voulez-vous enregistrer les modifications apportées ?"
Style = vbYesNo + vbQuestion + vbDefaultButton1
Title = "Programme de St@tman" ' ici c'est clair tu mettra le nom de ton programme
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
Call Remettremenu2
Range("A1").Select
ActiveWorkbook.Close SaveChanges:=True
Else
Call Remettremenu2
ActiveWorkbook.Close SaveChanges:=False

End If
Else

End If

End Sub

Mon probléme vient du fait que cela ferme bien le classeur actif mais pas excel.
Au départ il yavait: Application.Quit dans thisworkbook
Private Sub Workbook_Beforeclose()
mais j'ai du le retiré pour cause d'interaction avec une autre macro.
J'ai essayé divers endroit dans la macro quitter() mais pour l'instant je séche
Si quelqu'un à une idée
Merci
@+
 
M

michel

Guest
Rebonsoir st@tman

Je ne suis pas sur d’avoir bien compris ta requète : j’ai interprété que tu souhaitais fermer l’application Excel à la fermeture du fichier . j’espère que la modification ci dessous pourra t’aider

Attention : cela n’engage que moi , mais application.quit est , à mon avis , à utiliser avec parcimonie (je suis bien placé pour en parler car j’ai parfois fait des « bétises » en l’utilisant … ;o(….)

Je me suis permis d’ajouter un petit quelque chose dans le premier msgbox car il est important que les utilisateurs soient informés de la fermeture d’excel ( notamment pour la sauvegarde d’autres fichiers éventuellement ouverts…)

Sub Quitter()
Msg = "Vous voulez vraiment quitter le programme ? " & Chr(10) & " ATTENTION : cela signifie la fermeture d'Excel . Cliquez sur NON pour sauver préalablement vos autres fichiers . "
Style = vbYesNo + vbQuestion + vbDefaultButton1
Title = "Programme de St@tman" ' ici c'est clair tu mettra le nom de ton programme
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
Msg = "Voulez-vous enregistrer les modifications apportées ?"
Style = vbYesNo + vbQuestion + vbDefaultButton1
Title = "Programme de St@tman" ' ici c'est clair tu mettra le nom de ton programme
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
Call Remettremenu2
Range("A1").Select
ActiveWorkbook.Save
Call fermer
Else
Call Remettremenu2
Application.DisplayAlerts = False
Call fermer
End If
Else
End If
End Sub

Sub fermer()
Application.Quit
End Sub


Bonne soirée
Michel
 
M

michel

Guest
oooupppsss
le message est parti un peu vite

il faut enlever Application.DisplayAlerts = False
pour qu'excel propose de sauvegarder les autres classeurs eventuellement ouverts , avant la fermeture de l'application

bonne soirée
michel
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…