Código para regresar a la hoja activa anterior

Tengo un libro el cual están ocultas sus hojas y me dezplaso entre ellas con botones,

Lo que quiero ver si es posible es que si estoy posicionado en la "HOJA 5" y con un botón elijo pasar ala "HOJA15" hay alguna manera de regresar a la "HOJA 5" (el cual es mi hoja activa en la cual yo estaba posicionado antes)

Porque hay el activesheet. Previous.select pero este no me sirve porque si estoy en la "HOJA 15" este me manda ala "HOJA 14" y lo que necesito es que me regrese a la hoja en la cual yo estaba posicionado antes sea cual sea el orden...

2 Respuestas

Respuesta
1

Esta sería una opción, crea una hoja llamada "temporal" (puedes mantener oculta esta hoja).

Suponiendo que tienes tu código para moverte a una hoja:

Sub CambiarHoja()
    Sheets("temporal").[A2] = ActiveSheet.Name
    Sheets("Hoja15").Select
End Sub

Tienes que agregar esto:

Sheets("temporal").[A2] = ActiveSheet.Name

De esa forma estarás guardando en la hoja "temporal", en la celda A2 la hoja anterior.


Después con la siguiente macro regresarás a la hoja anterior:

Sub SeleccionarAnterior()
'Por.Dante Amor
    hoja = Sheets("temporal").[A2]
    If hoja <> "" Then
        Sheets(hoja).Select
    Else
        MsgBox "No hay hoja anterior"
    End If
End Sub

S a l u d o s . D a n t e   A m o r. Recuerda valorar la respuesta.

DAN una duda..

¿Sea cuál sea la hoja? Por ejemplo si estoy (HABLANDO DE HOJAS) en la 14 paso ala 17 este al ejecutar el código me regresa ala 14 (hoja anterior)

¿SI estoy en la 14 paso ala 17 y de la 17 paso ala 5 entonces la macro me debe regresar ala 17? ya que fue mi hoja activa anterior.. ¿cierto? ¿Así funciona?

H o l a :

Si utilizas el botón para ir de la 17 a la 5, entonces en ese botón tienes que poner este código:

Sheets("temporal").[A2] = ActiveSheet.Name

De esa forma cuando ejecutes la macro SeleccionarAnterior, te llevará a la hoja 17

S a l u d o s

¿Dan y en caso de ser nombre de hojas internas?

Por ejemplo ya puse el código pero me falla.

Si estoy en "IMPRESION" (HOJA1), y me voy a "VENTAS" (HOJA10) este me debe regresar a "IMPRESION" y si de "IMPRESION" me voy a "VENTAS" y de "VENTAS" me paso a "COSULTAS"(HOJA20) al ejecutar el código me debe regresar a "VENTAS" ya que fue mi ultima hoja activa

¿En qué te falla?

Si estás poniendo esto en la macro que te cambia de una hoja a otra:

Sheets("temporal").[A2] = ActiveSheet.Name

No importa que lo que utilices para cambiarte, la línea anterior siempre te pondrá el nombre de la hoja actual.

Y si luego ejecutas esto:

Sub SeleccionarAnterior()
'Por.Dante Amor
    hoja = Sheets("temporal").[A2]
    If hoja <> "" Then
        Sheets(hoja).Select
    Else
        MsgBox "No hay hoja anterior"
    End If
End Sub

La macro te llevará a la hoja anterior.

Pero no sé como tienes la primera macro, puedes poner la primera macro para revisarla.

je je lo que pasa es que no entiendo como acomodarlas..

¿Qué voy a poner en mi botón para regresar?

Es que aquí veo que esta hoja15 como base

Sub CambiarHoja()
    Sheets("temporal").[A2] = ActiveSheet.Name
    Sheets("Hoja15").Select
End Sub

entonces te digo que si puede ser poor nombres internos... y si pongo el codigo de arriba en mi boton para estar regresando?

o pongo esto:

Sub SeleccionarAnterior()
'Por.Dante Amor
    hoja = Sheets("temporal").[A2]
    If hoja <> "" Then
        Sheets(hoja).Select
    Else
        MsgBox "No hay hoja anterior"
    End If
End Sub

cuando te pregunte lo anterior me respondintes esto:

Si utilizas el botón para ir de la 17 a la 5, entonces en ese botón tienes que poner este código:

Sheets("temporal").[A2] = ActiveSheet.Name

Entonces no se que poner en mi botón para regresar...

je je disculpa

Vamos por partes.

Tienes que tener 2 macros.

La primera macro es para cambiar de hoja: Entonces debes tener algo así:

Sub CambiarHoja()
    Sheets("temporal").[A2] = ActiveSheet.Name
    hoja = "Hoja15"
    Sheets(hoja).Select
End Sub

Es importante que en esta macro establezcas a cuál hoja te vas a cambiar.

¿No entiendo cómo lo quieres hacer?

¿Tienes un botón en cada hoja?

¿O cómo pretendes cambiarte de la hoja 17 a la hoja 5?

Olvídate de si quieres el nombre interno o el nombre de hoja, primero aclara cómo vas a cambiarte de una hoja a otra.

Cuando tengas definido cómo te vas a cambiar de una hoja a otra, en esa macro tienes que poner esta instrucción:

Sheets("temporal").[A2] = ActiveSheet.Name


La segunda macro es para regresar a la hoja anterior:

Sub SeleccionarAnterior()
'Por.Dante Amor
    hoja = Sheets("temporal").[A2]
    If hoja <> "" Then
        Sheets(hoja).Select
    Else
        MsgBox "No hay hoja anterior"
    End If
End Sub

S a l u d o s . D a n t e   A m o r.

pienso estar cambiando por medio de la tecla "F7"

osea que solo al pulsar F7 este me este regresando a la hoja anterior de donde yo estaba

Mi macro para cambiar a la hoja anterior va a funcionar siempre y cuando te cambies de una hoja a otra con una macro

Entonces la macro 1 para cambiar de una hoja a otra hoja deberá tener esta línea

Sheets("temporal").[A2] = ActiveSheet.Name

Si no pones esa línea en una macro, entonces no va a funcionar la macro 2: SeleccionarAnterior

¿Me explico?

Respuesta

Si siempre tienes que volver a la hoja 5, crea un botón con una macro, y en visual basic le asignas el siguiente código:

Sheets("Hoja5").Select

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas