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

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

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