Plantage sur thisworkbook.close

Airone784

XLDnaute Occasionnel
Bonjour,

Voici le code que j'utilise à la fermeture d'un fichier :

Code:
Dim noevents As Boolean
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim nom As String, dateprep As Variant, vreponse As String

ActiveWindow.DisplayGridlines = True

'Permet d'éviter une boucle récursive et donc de fermer le fichier (par défaut à False, passe à true que si le fichier s'appelle Monfichier.xlsm)
If noevents Then Exit Sub

If ActiveWorkbook.Name <> "Monfichier.xlsm" Then

ThisWorkbook.Close False
Exit Sub
End If


noevents=true

'suite de mon code si le fichier s'appelle Monfichier.xlsm

Le problème est que ce code fonctionne bien si je n'ai que ce fichier excel ouvert.
Par contre dès que j'ai 2 fichiers ouverts, excel plante et j'ai un message avec une barre verte. excel a rencontré un problème...

Je ne vois pas pourquoi ça plante.
En pas à pas, après
Code:
If ActiveWorkbook.Name <> "Monfichier.xlsm" Then

ThisWorkbook.Close False                 
Exit Sub

le pas à pas revient sur la ligne :
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Le code déroule de nouveau :
Code:
ActiveWindow.DisplayGridlines = True

'Permet d'éviter une boucle récursive et donc de fermer le fichier (par défaut à False, passe à true que si le fichier s'appelle Monfichier.xlsm)
If noevents Then Exit Sub

If ActiveWorkbook.Name <> "Monfichier.xlsm" Then

ThisWorkbook.Close False                 
Exit Sub
End If

...et plante au 2ème passage sur exit sub!!!


Auriez-vous une explication à cela??

Merci d'avance.
 

Discussions similaires

Réponses
2
Affichages
191
Réponses
3
Affichages
146
Réponses
13
Affichages
234

Statistiques des forums

Discussions
312 176
Messages
2 085 961
Membres
103 066
dernier inscrit
bobfils