Par macro dans excel, enregistre le classeur et quuitter l'appli [Résolu]

- - Dernière réponse :  babu26 - 2 janv. 2014 à 00:34
Bonjour. Via un bouton de commande, je souhaite fermer l'application sans avoir à attendre la réponse pour enregistrer ou non, le classeur. Merci
Afficher la suite 

2 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Bonjour,
Sois précis. Tu veux quitter en enregistrant ou sans enregistrer ?
Si sans enregistrer ===W>> utilise la propriété saved de ton classeur (workbook) : à mettre à true
Rebonjour. Je veux via une macro, fermer Excel, sans voir la question "Enregistrer (oui/non)" s'afficher. Pour une fermeture plus rapide, il serait préférable que l'enregistrement n'ai pas lieu.
A ce jour, j'utilise la fonction suivante :
ActiveWorkbook.Close False
qui ferme le classeur, mais pas Excel.
Que dois-je ajouter pour quitter Excel ? Merci
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
As-ru esqsayé Application.quit ?
Avec thisworkbook.save = true avant
oui, essai non concluant. Excel reste ouvert, sans classeur.
J'ai aussi testé [Application.DisplayAlerts = False], sans effet non plus.

Bien sûr, Fermer Excel n'est pas difficile, mais ça reste 'inélégant' aprés l'acceptation de fermeture automatique approuvée.
Je te mets ci-dessous la routine que j'utilise :

Private Sub CmdQuitter_Click()
Dim x$: x = "Est-tu sûr de vouloir Quitter ?" + vbCrLf _
+ "Si oui, il ne restera qu'Excel, avec (ou sans) autre(s) classeur(s) à fermer."
If Not YesOrNo(x) Then Exit Sub 'fonction donnant la réponse d'un MsgBox
ActiveWorkbook.Close False
ThisWorkbook.Save = True
DisplayAlerts = False:
Application.Quit
End Sub


En fait, j'ai testé ceci
Private Sub CmdQuitter_Click()
Dim x$: x = "Est-tu sûr de vouloir Quitter ?" + vbCrLf _
+ "Si d'autres classeurs ont été ouverts, ils seront fermés... "
If Not YesOrNo(x) Then Exit Sub
Dim w: Application.DisplayAlerts = False
For Each w In Application.Workbooks: w.Save: Next w
Application.Quit
End Sub


et ça marche.

Merci de tes conseils. Bab
Commenter la réponse de ucfoutu