John doit s’assurer que certaines actions ont eu lieu (informations ajoutées, etc.) avant qu’un utilisateur ne quitte une feuille de calcul. Il se demande s’il existe une sorte d’événement de macro tel que WorksheetBeforeDeactivate.

Il existe en fait deux événements que vous pouvez utiliser à cette fin. Vous pouvez utiliser l’événement SheetDeactivate dans le module ThisWorkbook pour déclencher des actions chaque fois qu’un utilisateur quitte une feuille de calcul dans le classeur:

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

MsgBox Prompt:="You just left sheet:" & Sh.Name End Sub

Si vous souhaitez déclencher des actions uniquement lorsqu’elles quittent une feuille de calcul particulière, vous pouvez utiliser l’événement Deactivate dans l’objet WorkSheet:

Private Sub Worksheet_Deactivate()

' sheet specific code goes here End Sub

Vous devez savoir, cependant, que dans les deux cas, la feuille de calcul vers laquelle l’utilisateur choisit d’aller sera la feuille de calcul active une fois l’événement terminé. Si vous voulez forcer l’utilisateur à rester sur la feuille de calcul, vous devez spécifiquement les remettre sur la feuille de calcul, de cette manière:

Private Sub Worksheet_Deactivate()

' sheet specific code goes here     Sheets("Sheet1").Select End Sub

Cela suppose, bien sûr, que le nom de la feuille de calcul sur laquelle vous souhaitez que l’utilisateur reste est Sheet1.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (7730) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Triggering_an_Event_when_a_Worksheet_is_Deactivated [Déclencher un événement lorsqu’une feuille de travail est désactivée].