Sub Workbook_BeforeClose s'exécute 2 fois !

  • Initiateur de la discussion Initiateur de la discussion Jean-Phi
  • 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 !

J

Jean-Phi

Guest
Ciao le forum !

Je souhaite fermer mon fichier Excel sans le sauvegarder. Le sujet a déjà été abordé dans de nombreux posts sur ce forum ; j'ai trouvé tout ce dont j'ai besoin (Thisworkbook.Close SaveChanges:=False, Private Sub Workbook_BeforeClose(Cancel As Boolean)
, ...) et j'ai une question :
Sur mon PC (Excell 2000), la macro ci-dessous semble s'exécuter bizarrement : le message 'ok' s'affiche 2 fois avant que le fichier ne se ferme ???...

Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "ok"
ThisWorkbook.Close SaveChanges:=False
MsgBox "devrait etre ferme"
End Sub

L'explication que j'ai trouvée (et qui ne me convainc pas parce que n'expliquant pas tout) est la suivante :
au moment d'exécuter la commande ThisWorkbook.close, le programme exécute de nouveau la macro BeforeClose, ce qui expliquerait que 'ok' s'affiche 2 fois.
Mais alors à ce moment là, pourquoi SEULEMENT 2 fois ??... Pourquoi est-ce que le code s'arrète à la deuxième boucle ?

Je souhaite développer la macro BeforeClose, aussi, si quelqu'un a une idée de réponse, je suis preneur.


Cordialement,

Jean-Phi
 
salut 🙂,

ton explication est bien la bonne : tu ferme donc lance l'évènement et ds celui ci tu lui dis de fermer donc relance encore l'évènement.
pkoi il ne le fait pas en boucle je ne sai pas mais ou tout cas ton code lui n'est pas logique.

fais plutot un truc du style :


Dim BeforeClose As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
BeforeClose = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If BeforeClose = True Then Cancel = True
BeforeClose = False
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
447
Retour