Bonjour à toutes et à tous,
Je vous souhaite une belle journée
Me re-voilou encore avec mes questions bizarres lol
Voici maintenant longtemps que je me pose cette question :
Est-il possible d'activer les codes après Application.EnableEvents = False ?
De temps en temps je fais des recherches sans résultat !
J'essaie également des trucs sans trouver la solution !
Ce matin ça me repasse par la tête et je me repose la question. Mais ce n'est peut-être pas possible ?
Le contexte :
A certains moments, j'ai besoin de désactiver les macros = Application.EnableEvents = False
Je souhaiterais pouvoir, sans créer de bouton "à cliquer", les réactiver sans passer par l'affichage VBA pour aller exécuter la macro de réactivation manuellement.
Sauriez-vous si solution il y a ?
Amicalement,
lionel,
Sans bouton à cliquer, une possibilité via des touches claviers :
Dans Thisworkbook
VB:
Private Sub Workbook_Open()
Application.OnKey "^e", "Enable_Events" ' ctrl+e
Application.DisplayStatusBar = True
Stop_Events
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "^e"
End Sub
Dans un Module:
Code:
Public Sub Enable_Events()
Application.EnableEvents = True
Application.StatusBar = ""
' etc ...
End Sub
Public Sub Stop_Events()
Application.EnableEvents = False
Application.StatusBar = " Attention: Pas d'events autorisé "
End Sub
Et pour vérifier dans le code de ta feuille:
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "selection change car EnableEvents=true"
End Sub
Pour débloquer les events, faire Ctrl + e
Ceci dit, cela ne bloque que les macros événementielles .... Attention, le RightClick n'est pas événementiel ..
'exécutez cette macro
Sub Desactive()
Application.EnableEvents = False
End Sub
'puis faites un clic droit sur une cellule
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
MsgBox "Bonjour"
End Sub
Sub Reactive()
Application.EnableEvents = True
End Sub
'exécutez cette macro
Sub Desactive()
Application.EnableEvents = False
End Sub
'puis faites un clic droit sur une cellule
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
MsgBox "Bonjour"
End Sub
Sub Reactive()
Application.EnableEvents = True
End Sub
'exécutez cette macro
Sub Desactive()
Application.EnableEvents = False
End Sub
'puis faites un clic droit sur une cellule
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
MsgBox "Bonjour"
End Sub
Sub Reactive()
Application.EnableEvents = True
End Sub
Je n'ai pas réussi à faire fonctionner vos codes.
Certainement que je n'ai pas tout compris lol
J'ai fait un p'tit fichier test que je joins à ce #post.
Je n'ai pas réussi à faire fonctionner vos codes.
Certainement que je n'ai pas tout compris lol
J'ai fait un p'tit fichier test que je joins à ce #post.
Pour les macros de test de Job75, à mon avis il suffit de coller les trois macros dans une feuille, puis exécuter manuellement la première macro pour désactiver les événements.
En suite tu fais un clic-droit dans une cellule de la feuille.
Et tu viens nous dire ce qu'ils'est passé.
Pour finir tu exécutes manuellement la troisième macro pour réactiver les événements.