Par macro dans excel, enregistre le classeur et quuitter l'appli

Résolu
babu26 - 1 janv. 2014 à 10:27
 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

2 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
1 janv. 2014 à 10:31
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
0
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
1 janv. 2014 à 12:50
As-ru esqsayé Application.quit ?
Avec thisworkbook.save = true avant
0
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
0
Rejoignez-nous