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.
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
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+