Obligar a pulsar botón

Hola, es posible en excel, que cuando cambie de una hoja a otra esta me obligue a pulsar un botón que lance una macro.
Muchas gracias

1 respuesta

Respuesta
1
No me queda claro qué estás intentando hacer, pero te comento que podes programar la activación (y desactivación) de las hojas.
Imaginemos que quieras, que cuando se 'entre' a la Hoja2 se ejecute cierta rutina.
Entonces en el Editor, seleccioná con doble clic el objeto HOJA2 del panel a tu izquierda y allí escribí esto:
Private Sub Worksheet_Activate()      'rutina para cuando se 'entre' a la hoja
Call mi_Rutina
End Sub
Private Sub Worksheet_Deactivate()   'rutina para cuando se salga de la hoja
Call otra_rutina
End Sub
Ahora en un módulo deberás colocar tus rutinas
Sub mi_Rutina()
'instrucciones
MsgBox "Hola. Estás en la Hoja 2"
End Sub
Sub otra_rutina()
'instrucciones
End Sub
Gracias Elsa por tu respuesta, pero no se amolta a lo que necesito.
Siento haber explicado mal mi problema. Tengo un libro con varias hojas en las que inserto diariamente datos, al final de introducir los datos debo pulsar un botón que registra esa hoja a modo de control. El problema es que hay veces que cambio de hoja y no grabado los cambios, por eso había pensado que la forma de no olvidarme es crear una orden VB de forma que cuando cambie de hoja se graben los datos.
Muchas gracias
Los únicos eventos para esto son Activate y Desactivate como te mencioné.
Podrías utilizar este ejemplo en el evento Deactivate de un objeto HOJA (como te mencioné anteriormente)
Private Sub Worksheet_Deactivate()
Call macro_salida
End Sub
O seleccionando el objeto ThisWorkbook, para que se ejecute saliendo de cualquier hoja.
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Call macro_salida
End Sub
Ahora en un módulo podés tener una rutina de control antes de grabar:
Sub macro_salida()
sino = MsgBox("Acabas de salir de la hoja 'Consulta'. ¿Necesitas GRABAR los datos?", vbQuestion + vbYesNo, "Atención")
If sino = vbYes Then Call macro_graba
End Sub
Sub macro_graba()
'aquí irá tu macro de grabación
'tené presente que ahora la hoja activa es la nueva, a la que entraste.
End Sub
ES todo lo que puedo sugerirte, espero te sirva

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas