Ir a hoja de otro libro según el valor de la celda de otro libro

Trabajo con dos libros uno Caja Jesús 2016 y otro Cuentas por cobrar, bueno en mi libro caja en la hoja BOLETOS en la celda F1 ingreso el nombre de una de las hojas de mi otro libro Cuentas por cobrar, para este ejemplo solo puse algunas hojas, pero la verdad tengo como 200 hojas que las utilizo.

Mi consulta es de como ir a la hoja del libro Cuentas por cobrar según el valor de la celda F1 de mi libro Caja Jesús 2016.

Muchas gracias por su atención, saludos cordiales

Jesús

1 respuesta

Respuesta
1

H o l a:

Pon la siguiente macro en los eventos de la hoja "Boletos".

Para que funcione mejor la macro, deberás tener abierto el libro "cuentas por cobrar" en la misma aplicación de excel donde tienes abierto el libro "caja"

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Target.Address(False, False) <> "F1" Then Exit Sub
    '
    libro = "Cuentas por cobrar.xlsx"
    For Each l In Workbooks
        If l.Name = libro Then
            existe = True
            Exit For
        End If
    Next
    If existe Then
        For Each h In Workbooks(libro).Sheets
            If UCase(h.Name) = UCase(Target.Value) Then
                existehoja = True
                Exit For
            End If
        Next
        If existehoja Then
            Workbooks(libro).Activate
            Sheets(Target.Value).Select
        Else
            MsgBox "No existe la hoja: " & Target.Value
        End If
    Else
        MsgBox "No está abierto el archivo: " & libro
    End If
End Sub

Cada que modifiques la celda F1 de la hoja Boletos, la macro se activará y te enviará a la hoja del libro "cuentas por cobrar"


Sigue las Instrucciones para poner la macro en los eventos de 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(boletos)
  4. En el panel del lado derecho copia la macro

' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

¡Gracias! Muchas gracias

Jesús

Disculpa que escriba sobre el mismo tema, pero que tendría que modificar para ir mediante botón a la hoja de cuentas por cobrar, mediante el código:

Sub ir_a ( )

código....

End Sub

Saludos cordiales

Jesús

Podría ser así:

Sub ir_a ( )
sheets("cuentas por cobrar").select
End Sub

Disculpe por no ser más claro, me refería al código que usted gentil mente me proporciono 

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Target.Address(False, False) <> "F1" Then Exit Sub
    '
    libro = "Cuentas por cobrar.xlsx"
    For Each l In Workbooks
        If l.Name = libro Then
            existe = True
            Exit For
        End If
    Next
    If existe Then
        For Each h In Workbooks(libro).Sheets
            If UCase(h.Name) = UCase(Target.Value) Then
                existehoja = True
                Exit For
            End If
        Next
        If existehoja Then
            Workbooks(libro).Activate
            Sheets(Target.Value).Select
        Else
            MsgBox "No existe la hoja: " & Target.Value
        End If
    Else
        MsgBox "No está abierto el archivo: " & libro
    End If
End Sub

Quisiera que se ejecute mediante botonde control de formulario y haga lo que hace su macro hace pero sin doble click en la celda , o sea que se haga mediante sub () End Sub ()

Gracias

La macro que te envié no es que funcione con doble clic, la macro funciona modificando el contenido de la celda.

Es decir, modifica la celda y presionas enter, en automático te lleva a la hoja del otro libro, es más práctico que modificar la celda, presionar enter y después presionar otro botón.

Para que la macro funcione la tienes que poner en los eventos de la hoja

Sigue las Instrucciones para poner la macro en los eventos de 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. En el panel del lado derecho copia la macro

Sin embargo, si la quieres en un botón, quedaría así:

Sub ir_a()
'Por.Dante Amor
    hoja = ActiveSheet.[F1]
    libro = "Cuentas por cobrar.xlsx"
    For Each l In Workbooks
        If l.Name = libro Then
            existe = True
            Exit For
        End If
    Next
    If existe Then
        For Each h In Workbooks(libro).Sheets
            If UCase(h.Name) = UCase(hoja) Then
                existehoja = True
                Exit For
            End If
        Next
        If existehoja Then
            Workbooks(libro).Activate
            Sheets(hoja).Select
        Else
            MsgBox "No existe la hoja: " & Target.Value
        End If
    Else
        MsgBox "No está abierto el archivo: " & libro
    End If
End Sub

sal u dos

¡Gracias! 

Quedo Perfecto Graciasss

Un abrazo

Jesús

Un detalle de la última macro, cambia esta línea:

MsgBox "No existe la hoja: " & Target.Value

Por esta:

MsgBox "No existe la hoja: " & hoja

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas