XL 2010 Fermeture d'un classeur

Magic_Doctor

XLDnaute Barbatruc
Bonsoir,

J'ai un MessageBox. Quand je clique sur le bouton "OUI" le classeur doit se fermer ipso facto après enregistrement des dernières modifications qui y ont été faites. Le problème est donc à priori simple. Quand je dis que le classeur se ferme, c'est en même temps l'application Excel (pour ne pas rester avec un écran tout bleu et devoir le fermer), si et seulement si seul ce classeur est ouvert. S'il y avait d'autres classeurs ouverts, alors le classeur que l'on ferme se ferme mais l'application Excel, elle, reste ouverte.
Pour résoudre ce problème, j'ai tenté ceci :
VB:
        Dim closExcel As Boolean

        If Rep = vbYes Then
            closExcel = True
            If ThisWorkbook.Parent.Workbooks.Count > 1 Then closExcel = False
            Application.DisplayAlerts = False
            With ThisWorkbook: .Save: .Close: End With
            If closExcel Then Application.Quit
        End If
L'application Excel reste obstinément ouverte si seul le classeur que je ferme est ouvert.
Comment résoudre ce problème ?
 
Solution
Bonsoir @Magic_Doctor :)

Dans votre code, vous fermez le classeur et donc rendez inopérant l'exécution de la suite du code VBA après le .close (puisqu'il n'y a plus de code).

Une piste:
VB:
   If rep = vbYes Then
      ThisWorkbook.Save
      If Application.Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
   End If

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @Magic_Doctor :)

Dans votre code, vous fermez le classeur et donc rendez inopérant l'exécution de la suite du code VBA après le .close (puisqu'il n'y a plus de code).

Une piste:
VB:
   If rep = vbYes Then
      ThisWorkbook.Save
      If Application.Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
   End If
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa