Hacer una macro que me lleve a una hoja cuyo nombre esta almacenado en una celda...

Buenas..... Tengo un libro que crea un indice con el nombre de todas las hojas activas dentro del libro, ahora quisiera hacer una macro para que según el nombre del indice que seleccione me lleve a la hoja con dicho nombre... Es decir tengo las hojas pepe jose y pedro estas hojas crean un indice y la macro debe ir a la hoja pepe si selecciono el nombre pepe, lo puedo hacer por hipervinculos desde el indice pero quisiera hacerlo con una macro.

De antemano gracias a quien me pudiera colaborar!!!

Respuesta
1

Te anexo la macro. Debes poner la macro en los eventos de la hoja.

Cambia en la macro "B" por la columna en donde tienes la lista de hojas.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Columns("B")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        For Each h In Sheets
            If h.Name = Target Then
                Sheets(h.Name).Select
                Exit Sub
            End If
        Next
    End If
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

1 respuesta más de otro experto

Respuesta
1

Podrías utilizar el evento SelectionChange de la hoja.

Entra al Editor, selecciona con doble clic el objeto HOJA donde tengas tu indice (en panel a tu izquierda) y allí copia esta macro. Estoy considerando que el indice se encuentra en col A a partir de fila 3 (ajusta estos detalles a gusto).

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'x Elsamatilde
'controla la selecciòn en col A a partir de fila 2
If Target.Column <> 1 Or Target.Row < 3 Then Exit Sub
'si la celda esta vacia cancela
If Target.Value = "" Then Exit Sub
'pasa a la hoja seleccionada- controla posible error de que no se encuentra hoja con ese nombre
On Error Resume Next
Sheets(Target.Value).Select
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas