VBA: Empêcher la fermeture d'Excel

MJ13

XLDnaute Barbatruc
Bonjour à tous

Je cherche le moyen d'empêcher la fermeture d'excel que je pourrais déclencher via une macro.

En effet, j'ai souvent des problèmes avec les différentes sessions d'Excel et je voudrais pouvoir tout ouvrir de la même session, sans qu'Excel ne se ferme.

Merci d'avance :).
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : VBA: Empêcher la fermeture d'Excel

Re

Bon j'ai mis dans le Workbook.beforeclose d'une macro complémentaire:

Code:
Cancel=true

Et cela à l'air de fonctionner.

Il faudra que je le transforme en macro avec une mise en route et un arrêt :).
 

MJ13

XLDnaute Barbatruc
Re : VBA: Empêcher la fermeture d'Excel

Re

Bon du coup j'ai fait ainsi:

Dans mon classeur de macros complémentaires j'ai mis ce code dans Thisworkbook:

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Stop
If ChoixArret = True Then Cancel = True Else Exit Sub
End Sub
Private Sub Workbook_Open()
ChoixArret = False
End Sub

Et dans un module VB j'ai mis:

Code:
Public ChoixArret As Boolean
Sub ChoixArretVal()
If ChoixArret = True Then ChoixArret = False: MsgBox "Vous pouvez fermer Excel":  Exit Sub
If ChoixArret = False Then ChoixArret = True: MsgBox "Vous ne pouvez plus fermer Excel": Exit Sub
End Sub


Voilà, c'est tout :).
 

david84

XLDnaute Barbatruc
Re : VBA: Empêcher la fermeture d'Excel

Bonsoir Michel,
pas sûr d'avoir compris mais une proposition utilisant un module de classe nommé EventApp :
Dans le module de classe :
Code:
Private WithEvents Xlapp As Application

Private Sub Class_Initialize()
Set Xlapp = Application
End Sub

Private Sub Xlapp_WorkbookBeforeClose(ByVal wb As Workbook, Cancel As Boolean)
Cancel = True
End Sub
Dans un module classique :
Code:
Dim ThisApplication As EventApp

Sub Activer_Evenements_Application()
Set ThisApplication = New EventApp
End Sub

Sub Desactiver_Evenement_Application()
Set ThisApplication = Nothing
End Sub
Appuie sur le bouton Empêcher fermeture, ouvre au besoin d'autres classeurs et tente de le(s) fermer.
Pour le(s) fermer appuyer auparavant sur Autoriser fermeture.
A+
 

Pièces jointes

  • Empecher_fermeture_Excel.xls
    44 KB · Affichages: 119
  • Empecher_fermeture_Excel.xls
    44 KB · Affichages: 122
  • Empecher_fermeture_Excel.xls
    44 KB · Affichages: 134

Discussions similaires

Haut Bas