Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA Annuler évènements (différent de EnableEvents = False)

dionys0s

XLDnaute Impliqué
Bonjour le forum,

Dans mon module ThisWorkbook, j'ai les deux événements "Workbook_SheetDeactivate" et "Workbook_SheetActivate" dans lesquels j'ai du code. J'aimerais pouvoir empêcher l'exécution de "Workbook_SheetActivate" depuis l'événement "Workbook_SheetDeactivate" tout en laissant Application.EnableEvents à True

VB:
Option Explicit

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  CheckUnMachin Sh, True
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
  CheckUnMachin Sh, False
End Sub

Private Sub CheckUnMachin(Wks As Excel.Worksheet, WksActivate As Boolean)

  If Wks.Index Mod 2 = 0 Then
  'Ce test est volontairement bidon.
  'Il faut juste jongler entre les deux onglets du classeur.

  'du code
  'du code

  Else
  If Not WksActivate Then
  'On est dans l'execution de Workbook_SheetDeactivate => Workbook_SheetActivate se declenchera dans la foulee
   
  'Du code pour empecher l'exécution de Workbook_SheetActivate mais tout en laissant Application.EnableEvents à True
  End If
  End If

End Sub

D'avance merci pour votre aide
 

Pièces jointes

  • Events.xlsm
    33.9 KB · Affichages: 78

Dranreb

XLDnaute Barbatruc
Bonjour
Je ne vois pas d'autre solution que positionner à True un global Private ActivAnnulé As Boolean
et faire comme 1ère chose au début de la Workbook_SheetActivate :
If ActivAnnulé Then ActivAnnulé = False: Exit Sub
 

Discussions similaires

Réponses
2
Affichages
360
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…