Macro llamar hojas según cuadro de lista

Hola se podrá llamar hojas mediante la selección en un cuadro de lista. La idea es presentar este cuadro en una hoja y desde ahí ir o llamar a las hojas según la selección en este caso de fechas

Esta es más menos la idea ( Si selecciono la fecha 01-09-2014 me lleva a la hoja que existe con el mismo nombre. Ahora en el caso de que alguna de las hojas no existiera ejemplo hoja("06-09-2014") realice nada o indique un mensaje no existe información. Algo así

En realidad necesito algo para ir a esas hojas con nombre fechas. Esto es sólo una idea de como podría ser

Quizás halla algo mejor, pero tampoco me sirve un control de calendario ya que ese hay que instalarlo y si el pc no lo tuviera seria un problema

1 respuesta

Respuesta
1

En lugar de un cuadro de lista, puedes poner un cuadro de lista, pero Control ActiveX

Ahora inserta la siguiente macro en los eventos de "tu hoja", es decir, la hoja en donde pusiste el cuadro de lista.

Private Sub ListBox1_Click()
'Por.DAM
    hoja = ActiveSheet.ListBox1.List(Me.ListBox1.ListIndex)
    Sheets(hoja).Select
End Sub
'
Private Sub Worksheet_Activate()
'Por.DAM
    ActiveSheet.ListBox1.Clear
    For Each h In Sheets
        hn = h.Name
        If IsDate(hn) Then
            ActiveSheet.ListBox1.AddItem hn
        End If
    Next
End Sub

Sigue las Instrucciones para poner la macro en worksheet

1. Abre tu libro de excel

2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11

3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)

4. Del lado derecho copia la macro               

Con la segunda macro, cada vez que selecciones "tu hoja", el cuadro de lista se va a actualizar con los nombres de todas las hojas que sean fecha, si una fecha no existe, simplemente no aparecerá en el cuadro de lista.

Con la primera macro, cada que selecciones un registro te llevará a la hoja.

Saludos. Dante Amor

Hola Dante Amor.

Si entendí bien tus instrucciones deje la macro de esta manera: Ahí me queda la duda si donde tu tenias hoja va el nombre de la hoja ( la mía se llama registro) o tenia que dejaer hoja = activatesheets y sólo cambiar sheets("registro").?

Al parecer el listbox anda bien, pero la macro que me debe llevar hacia la hoja que quiero no lo hace. Por que selecciono en el list box 02-09-2014 y no me lleva hacia esa hoja.

No modifiques nada en la macro, solamente tienes que poner la macro en la hoja donde pusiste el listbox, en este caso en la Hoja 1 (Registro)

Lo que pusiste en la macro es que siempre te seleccione la hoja "Registro".

La macro debe quedar así:

Private Sub ListBox1_Click()
'Por.DAM
    hoja = ActiveSheet.ListBox1.List(Me.ListBox1.ListIndex)
    Sheets(hoja).Select
End Sub
'
Private Sub Worksheet_Activate()
'Por.DAM
    ActiveSheet.ListBox1.Clear
    For Each h In Sheets
        hn = h.Name
        If IsDate(hn) Then
            ActiveSheet.ListBox1.AddItem hn
        End If
    Next
End Sub

Cualquier duda, avísame

Me dio un error. Me puede enviar su archivo base mejor? no sé por que me arroja el error . la pegue tal cual.  

Hola Dante Amor

 Mira al final si funciona si cambio lo nombres de las hojas por unos que no sean fechas. Parece que el problema es ese. con formato fecha no me funciona. Ahora a pesar de que funciona con otros nombre. Si quiero volver a la hoja donde tengo el listbox. me arroja este error en tiempos de ejecución.

Igual lo que necesito es que sea en forma fecha. De hecho mi libro esta trabajando con el siguiente formato  miércoles, (10 de septiembre de 2014) por lo tanto mi listbox es hasta el 30 de Septiembre de 2014.   Ojala me puedas ayudar.  !

Lo que pasa es que en tu ejemplo pusiste esto "01-09-2014", la macro la preparé para una fecha, pero te anexo mi archivo con la corrección, puedes poner cualquier nombre a las hojas.

Agregué esto para que se actualice el listbox cuando abres el libro

Private Sub Workbook_Open()
'Por.DAM
    ActiveSheet.ListBox1.Clear
    For Each h In Sheets
        If h.Name <> "Registro" Then
            ActiveSheet.ListBox1.AddItem h.Name
        End If
    Next
End Sub

https://www.dropbox.com/s/hjzr0zbk439ki3x/seleccionar%20hoja.xlsm?dl=0 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas