John debe asegurarse de que se hayan llevado a cabo ciertas acciones (información agregada, etc.) antes de que un usuario deje una hoja de trabajo. Se pregunta si hay algún tipo de evento macro como WorksheetBeforeDeactivate.

En realidad, hay dos eventos que puede utilizar para este propósito. Puede usar el evento SheetDeactivate en el módulo ThisWorkbook para activar acciones cada vez que un usuario deja cualquier hoja de trabajo en el libro:

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

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

Si desea activar acciones solo cuando salen de una hoja de trabajo en particular, puede usar el evento Desactivar en el objeto Hoja de trabajo:

Private Sub Worksheet_Deactivate()

' sheet specific code goes here End Sub

Sin embargo, debe saber que, en cualquier caso, la hoja de trabajo a la que el usuario elige ir será la hoja de trabajo activa después de que se complete el evento. Si desea obligar al usuario a permanecer en la hoja de trabajo, debe volver a colocarlo específicamente en la hoja de trabajo, de esta manera:

Private Sub Worksheet_Deactivate()

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

Esto supone, por supuesto, que el nombre de la hoja de trabajo en la que desea que permanezca el usuario es Sheet1.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (7730) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Triggering_an_Event_when_a_Worksheet_is_Deactivated [Activando un evento cuando una hoja de trabajo está desactivada].