Macro para ir a una hoja cuyo nombre esta en la celda de otra hoja

Espero puedan ayudarme

Si en celda A1 de la hoja1 ingreso el nombre de alguna de las hojas del libro, la macro me lleve a la hoja ingresada.

3 respuestas

Respuesta
1

Pon la siguiente macro en los eventos de tu hoja

Private Sub Worksheet_Change(ByVal Target As Range)
'Ir a la hoja
    Set celda = Range("A1")
    If Not Intersect(Target, celda) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target.Value = "" Then Exit Sub
        '
        For Each h In Sheets
            If LCase(h.Name) = LCase(Target.Value) Then
                existe = True
                Exit For
            End If
        Next
        If existe Then
            Sheets(celda.Value).Select
        Else
            MsgBox "No existe la hoja con el nombre: " & celda.Value
        End If
    End If
End Sub

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


Captura el nombre de la hoja en la celda A1 y cuando presiones enter, en automático seleccionará la hoja.

.

.

Respuesta
1

Prueba esta macro

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
nombre = Range("a1")
If IsEmpty(nombre) = True Then End
On Error Resume Next
    existe = (Worksheets(nombre).Name <> "")
On Error GoTo 0
If existe = True Then Sheets(nombre).Select
If existe = False Then MsgBox ("NO EXISTE ESTA HOJA"), vbCritical, "AVISO"
Range("a1") = Empty
End Sub
Respuesta
1

Hol.a

Una forma simple es usar el evento "Change" de la hoja. Algo como esto te ayudaría:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Hoja As Worksheet
If Target.Address = "$A$1" Then
    For Each Hoja In Worksheets
        If LCase(Target.Value) = LCase(Hoja.Name) Then
            Hoja.Select
            Exit Sub
        End If
    Next Hoja
MsgBox "No existe una hoja con ese nombre"
End If
End Sub

Comentas

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas