Volver a una hoja después de un tiempo estando trabajando en otro libro

Hola

Tengo un “libro 1” con varias hojas por las que me muevo y trabajo. En este libro hay una macro que después de 5 minutos vuelve a la “hoja 1” y funciona bien. El problema es que si estoy trabajando con otro “libro 2” la macro que tengo para que vuelva en 5 minutos a la “hoja 1” del “libro 1” me da error. No se como activar el “libro 1” de nuevo.

Gracias de antemano

1 Respuesta

Respuesta
1

Puedes poner la macro para revisarla.

¿Si estás en otro libro quieres que se desactive la macro o de todas formas quieres que regrese al "libro1" "hoja1"?

Hola Dante, gracias por ayudarme

 En un módulo tengo:

              Sub VUELVE_A_HOJA1()

                       'Después de 5 minutos vuelve a la “HOJA 1".

                        Worksheets("Hoja1").Select

             End Sub

 Y en la hojas 2 y 3 tengo:

                  Private Sub Worksheet_SelectionChange(ByVal Target As Range)

                           'DESPUES DE 5 MINUTOS VUELVES A LA “HOJA 1”

                 Application.OnTime Now + TimeValue("00:05:00"), "VUELVE_A_HOJA1"

          End Sub

A tu pregunta: 

Si estoy en otro “libro 2” la macro del “libro 1” se tiene que ejecutar SIEMPRE, y a poder ser que lo haga de forma “oculta”, es decir, que no me haga un cambio de pantalla para volver al “libro 1” y ver como cambia a la “hoja 1”, porque puedo estar metiendo datos en el "libro 2" y no enterarme.

Que lo haga en segundo plano, que no me entere de que lo ha hecho pero que lo haga mientras trabajo con el “libro 2”.

Gracias

Cambia tu macro de módulo por esta :

Ahora es Private sub, 

Private Sub VUELVE_A_HOJA1()
'Mod.Por.DAM
    'Después de 5 minutos vuelve a la “HOJA 1".
    ThisWorkbook.Activate
    Worksheets("Hoja1").Select
    Set activa = ActiveCell
    Range("A1").Select
    activa.Select
End Sub

Quita las macros que tienes en worksheets

Pon las siguientes macros en Thisworkbook

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Mod.Por.DAM
    'DESPUES DE 5 MINUTOS VUELVES A LA “HOJA 1”
    Application.OnTime Now + TimeValue("00:05:00"), "VUELVE_A_HOJA1"
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
'Mod.Por.DAM
    'DESPUES DE 5 MINUTOS VUELVES A LA “HOJA 1”
    Application.OnTime Now + TimeValue("00:05:00"), "VUELVE_A_HOJA1"
End Sub

Con estas macros, si estás en otra hoja dentro del mismo libro, te regresa a la hoja1. Si estás en otro libro, te regresa al libro1 a la hoja1.

Saludos. Dante Amor

No olvides valorar la respuesta.

Hola Dante

Funciona muy bien las macros, gracias. Una pregunta, ¿se podría hacer que al volver a la "hoja 1" del "libro 1" cuando estoy trabajando en el "libro 2" no lo viera?.

Es decir, que lo hiciera de forma oculta porque ahora se ve como cambia al "libro 1" y eso me va a dar problemas en mi trabajo diario.

Gracias

No entiendo esto que comentas "Una pregunta, ¿se podría hacer que al volver a la "hoja 1" del "libro 1" cuando estoy trabajando en el "libro 2" no lo viera?."

Eso fue lo que pediste: "No se como activar el “libro 1” de nuevo."

Con esto se activa el libro1, pero en pantalla vas a tener el libro1, pero si revisas la ventana que estará seleccionada será el libro2

Private Sub VUELVE_A_HOJA1()
'Mod.Por.DAM
    'Después de 5 minutos vuelve a la “HOJA 1".
    Application.ScreenUpdating = False
    'ThisWorkbook.Activate
    ThisWorkbook.Worksheets("Hoja1").Activate
    Set activa = ActiveCell
    Range("A1").Activate
    activa.Activate
End Sub

Ahora si quieres que estando en el libro2 no se ponga en pantalla el libro1, utilza esta:

Private Sub VUELVE_A_HOJA1()
'Mod.Por.DAM
    'Después de 5 minutos vuelve a la “HOJA 1".
    Application.ScreenUpdating = False
    'ThisWorkbook.Activate
    If ActiveWorkbook.Name = ThisWorkbook.Name Then
        ThisWorkbook.Worksheets("Hoja1").Activate
        Set activa = ActiveCell
        Range("A1").Activate
        activa.Activate
    End If
End Sub

El error a tu pregunta inicial fue corregido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas