Excel proporciona una variedad de formas en las que puede pasar de una hoja de trabajo a otra en un libro. Si desea deshabilitar el movimiento entre hojas de trabajo, tiene una tarea difícil frente a usted debido a la variedad de métodos sobre los que necesita hacer algo.

Por ejemplo, una forma de moverse entre hojas de trabajo es presionar Ctrl + Page Up o Ctrl + Page Down. Para deshabilitar estas claves para un libro de trabajo en particular, debe usar el método OnKey, de la siguiente manera:

Private Sub Workbook_Activate()

Application.OnKey "^{PgDn}", ""

Application.OnKey "^{PgUp}", ""

End Sub
Private Sub Workbook_Deactivate()

Application.OnKey "^{PgDn}"

Application.OnKey "^{PgUp}"

End Sub

Estas dos macros deben colocarse en el objeto ThisWorkbook. El primero se ejecuta cada vez que se activa el libro de trabajo y deshabilita Ctrl + Page Up y Ctrl + Page Down al no ejecutar nada cuando se presionan. La segunda macro se ejecuta cuando el libro de trabajo está desactivado y vuelve a habilitar las teclas.

Todavía hay varias otras formas de cambiar entre hojas de trabajo, como seleccionar manualmente la hoja, usar Ir a, usar hipervínculos, etc. La forma más fácil de evitar moverse entre hojas de trabajo es ocultar las hojas de trabajo a las que no desea acceder. Proteger el libro de trabajo y proteger el proyecto VB también ayudará a «impedir» que el usuario se mueva entre hojas.

Si las hojas están ocultas, no se pueden seleccionar y, por lo tanto, no se puede mover a ellas. Ir a no irá a ellos, los hipervínculos no irán a ellos.

Si desea que los usuarios puedan ver las hojas de trabajo ocultas más tarde, debe crear una rutina de macro con sus propios controles / botones para ir a esas hojas. Esta rutina «mostraría» la hoja a la que se dirige y ocultaría la que acaba de dejar.

Dependiendo de sus necesidades, hay otro enfoque que puede probar. Puede agregar la siguiente macro al objeto ThisWorkbook:

Private Sub Workbook_SheetDeactivate(ByVal mySheet As Object)

Application.EnableEvents = False     mySheet.Activate     Application.EnableEvents = True End Sub

Esta macro se ejecuta cada vez que se desactiva la hoja de trabajo actual.

Básicamente, «reactiva» la hoja de trabajo que queda, lo que significa que no se puede seleccionar ninguna otra hoja de trabajo.

_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 (11210) 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-Disabling_Moving_Between_Worksheets [Deshabilitar el movimiento entre hojas de trabajo].