Cómo hacer una macro para que me devuelva a la hoja de excel anterior (activa)

Quisiera saber cómo es el código para hacer que un boton cualquiera me regrese a la hoja de excel anteriormente utilizada. Por ejemplo tengo un archivo lleno de macros, son 3 variables principales que utilizo, dentro de esas 3 variables independientes tengo sub variables que son las mismas para las 3 variables, quiero que cuando se ingrese a una sub variable al momento de devolverse la persona solo ponga "atras" y en vez de crear una macro para cada variable principal que diga "atras 1" "atras2" y "atras3", me devuelva a la ultima hoja activa de excel. Tengo este codigo que lo encontre en esta página pero no sé cómo ponerlo, en el modulo copio lo que dice y en la hoja que necesito copio el codigo (visual basic) pero cuando asigno la macro presenta error.

1. En módulo colocas lo siguiente:
Public previa, actual As String  'Declarar variables públicas
Sub ir()
      Sheets(previa).Activate
End Sub
 
2. En cada hoja colocas el código:
Private Sub Worksheet_Activate()
      previa = actual
      actual = ActiveSheet.Name
End Sub

Sería de gran ayuda poder enteneder cómo se utiliza este código o si necesita modificación.

1 respuesta

Respuesta
1

H o l a:

No entendí bien lo de tus variables y subvariables.


Si solamente quieres seleccionar la hoja anterior; si entendí bien, por ejemplo, tienes 4 hojas: hoja1, hoja2, hoja3, hoja4.

Abres el libro y estás en la hoja1, ahora seleccionas la hoja3, si presionas el "botón", lo que debe hacer la macro es ir a la "hoja1", ¿correcto?. Ahora si seleccionas la hoja4 y después presionas el "botón" debe seleccionar la hoja1, ¿es correcto?


Si es así, realiza lo siguiente:

1. Pon la siguiente macro en un módulo y asígnala a un botón

Public anterior
'
Sub Regresar()
'Por.Dante Amor
    If anterior <> "" Then
        Sheets(anterior).Select
    End If
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente, regresa a excel.
  6. Inserta una imagen en tu hoja, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: regresar
  10. Aceptar.
  11. Copia el botón en todas las hojas.

2. Pon la siguiente macro en los eventos de Thisworkbook:

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
'Por.Dante Amor
    anterior = Sh.Name
End Sub

Instrucciones para poner la macro en los eventos ThisWorkbook

  1. Entra a Vba-macros, Presiona Alt + F11
  2. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  3. En el panel del lado derecho copia la macro.
  4. Regresa a Excel, selecciona cualquier hoja
  5. Presiona el botón, la macro regresar a la hoja anteriormente seleccionada.

':)
'S aludos. D a n t e   A m o r . R ecuerda valorar la respuesta. G racias
':)

No, creo que no me hice entender.

Yo tengo en excel 4 hojas, 1,2,3,4

Estoy en la hoja 1 y pasé a la hoja 3 y luego pasé a la hoja 4 cuando "oprima el boton" necesito que la macro me regrese a la hoja 3 (fue la última hoja de excel activa antes de llegar a la última (que vendría siendo la actual en la que estoy en este momento) y así sucesivamente.

Tengo un consolidado de información en excel, la estoy "llenando" de información para que mis jefes al momento de abrirla solamente a punta de "botones" puedan moverse por el archivo revisando toda la información. El archivo se compone de 3 categorias, y cada categoria tiene items que se analizan. Uno de los items es una MISMA hoja de excel, es decir que ese item tiene 3 entradas (cada categoria tiene un "boton" y ese boton dirige a la misma hoja de excel).

Categoria 1 presiono el "boton"  ==> Hoja de excel analisis

Categoria 2 presiono el "boton"  ==> Hoja de excel analisis

Categoria 3 presiono el "boton"  ==> Hoja de excel analisis

La hoja de excel analisis tiene un boton que se llama "regresar". Ahora si por ejemplo yo estoy en la categoria 2, presiono el "boton" y voy a la hoja de excel analisis (es la misma hoja de excel para las 3 categorias), ahora necesito que el boton "regresar" me devuelva a la categoria 2 (vendría siendo la hoja de excel anteriormente utilizada). El mismo ejemplo para la categoria 1 y 3.

¿Probaste las macros que te envié?

Si no es lo que necesitas, entonces completa los siguientes ejemplos:

Tienes 4 hojas

  • Estás en la hoja1, seleccionas la hoja4, presionas el botón, ¿qué hoja se selecciona?
  • Estás en la hoja2, seleccionas la hoja4, presionas el botón, ¿qué hoja se selecciona?
  • Estás en la hoja4, seleccionas la hoja1, presionas el botón, ¿qué hoja se selecciona?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas