Voici la fin de la macro qui se trouve dans le fichier 1.
Sub ActiveDesactiveEvenements()
With Application
* .EnableEvents = Not .EnableEvents
* If .EnableEvents Then
* * .StatusBar = False
* Else
* * .StatusBar = "Evènementiel désactivé"
* End If
End With
End Sub
Re : Comment debloqué une macro evenementiel...qui bloque un 2em fichier ouvert...
Bonjour,
Dès que ça englobe trop de lignes ou que ça devient complexe je me méfie de .EnableEvents = False.
Je préfère utiliser une variable publique b_noEvents as boolean pour le gérer.
Code:
' hors procédure, dans un module Standard :
Public b_noEvents as boolean
'Au début des événements :
if b_noEvents then exit sub
' Désactiver les événements :
b_noEvents = True
' Activer
b_noEvents = False
A l'ouverture b_noEvents=False, les événements sont activés.
Chaque classeur aura sa variable noEvents et tu peux les multiplier dans un classeur si besoin.
Et un pb dans le code ne te bloque pas tous les événements excel puisqu'ils restent toujours actifs.
eric
Dès que ça englobe trop de lignes ou que ça devient complexe je me méfie de .EnableEvents = False.
Je préfère utiliser une variable publique b_noEvents as boolean pour le gérer.
Code:
' hors procédure, dans un module Standard :
Dim b_noEvents as boolean
'Au début des événements :
if b_noEvents then exit sub
' Désactiver les événements :
b_noEvents = True
' Activer
b_noEvents = False
A l'ouverture b_noEvents=False, les événements sont activés.
Chaque classeur aura sa variable noEvents et tu peux les multiplier dans un classeur si besoin.
Et un pb dans le code ne te bloque pas tous les événements excel puisqu'ils restent toujours actifs.
eric
Re : Comment debloqué une macro evenementiel...qui bloque un 2em fichier ouvert...
Bonjour,
A tester
Bien sûr c'est Public qu'il faut déclarer b_noEvents (et non Dim)
eric
PS : Tu ne changes pas la StatusBar sur l'activation d'un classeur. Elle ne représente pas la réalité du classeur actif, c'est peut-être pour ça que tu te fais des noeuds.
Ajoute dans ThisWorkbook des classeurs concernés :
Code:
Private Sub Workbook_Activate()
With Application
If b_noEvents Then
.StatusBar = "Evènementiel désactivé"
Else
.StatusBar = False
End If
End With
End Sub
Re : Comment debloqué une macro evenementiel...qui bloque un 2em fichier ouvert...
Le 2nd fichier est à l'identique du 1er et tu l'as modifié de la même façon ?
PS: et comment es-tu sûr que les macros ne se lancent pas ? Tu as mis un Stop en 1ère ligne de chaque pour le constater ou c'est juste que tu ne vois aucun changement ?