VBA: Empêcher la fermeture d'Excel

  • Initiateur de la discussion Initiateur de la discussion MJ13
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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 🙂.
 
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 🙂.
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Extraction via pdf
Réponses
1
Affichages
95
Retour