Cómo hacer hipervínculos a hojas gráficas?

Los molesto porque necesito hacer un índice en Excel con todos los hipervínculos a las hojas de ese mismo documento. El tema es que tengo mezclado hojas normales con hojas gráficas. Así que no puedo crear todos los hipervínculos de la manera común ya que no tengo una celda de referencia en los gráficos. ¿Se puede hacer con macros?

2 respuestas

Respuesta
1

[Hola

Los hipervínculos dentro de un mismo archivo de Excel hacen referencia a un rango (celdas). Las hojas tipo gráfico no tienen celdas por lo que no es posible hacer/crear un hipervínculo (tal cual) hacia ellas.

Una forma es usar macros para ir hacia esa hoja-gráfico, una instrucción tan simple como:

Sub IrAGrafico()
sheets("Nombredelahojagrafico").select
End Sub

Puedes asociar eso a algún objeto por ejemplo.

Abraham Valencia

Mil gracias por tu respuesta. Eso lo intenté también pero no quisiera agregar objetos de a uno. Tengo como 30 hojas-gráfico. Se puede combinar esa instrucción con un condicional de tal manera que si encuentra la palabra”gráfico” haga x y si no haga y?

Mil gracias nuevamente por tu aporte! 

[Hola

¿Todas las hojas-gráfico tienen nombre similares?

Abraham Valencia

Hola Abraham,

Si, las hojas gráfico tienen una estructura similar: Gráfico 1, Gráfico 2, ... En el índice, una columna contiene este nombre (coincide tal cual el de cada hoja) y en la columna siguiente está el título del gráfico. Ahora estaba pensando en una macro que seleccione/active por ejemplo la hoja Gráfico 1 utilizando la celda donde está ese nombre (Gráfico 1) para construir la instrucción. Esta macro la pudo asociar a un botón “Ir a gráfico” para ejecutar la macro luego de seleccionar la celda que dice Gráfico 1 en el índice. Pude llegar hasta ese punto pero estoy trabada en el error 9 del tiempo de ejecución. Esto pasa cuando selecciono cualquier otra celda (es decir, no hay una hoja con ese nombre porque obviamente no la encuentra). No se como decirle a la macro que no haga nada si no encuentra a la hoja o que me aparezca un msgbox indicando el error. Intenté con un if y no me resultó. Un saludo! Mil gracias por preguntar!

[Hola

Prueba con la macro llamada "Indice":

Sub Indice()
Dim Nombre As String
Let Nombre = ActiveCell.Value
If ExisteHoja(Nombre) = False Then
    MsgBox "Elija un nombre correcto para la hoja"
    Exit Sub
End If
Sheets(Nombre).Select
End Sub
Function ExisteHoja(ByVal Nombre_Hoja As String) As Boolean
On Error Resume Next
ExisteHoja = CBool(Len(Sheets(Nombre_Hoja).Name) > 0)
End Function

La función (UDF) es la que verifica si existe o no una hoja con el nombre.

Saludos]

Abraham Valencia

¡Gracias!  Que genioooo!! Me funciona bárbaro! Claramente lo que yo hice muestra lo muy básico de mis conocimientos de macro. Excelente!  Gracias gracias gracias x 1.000.000!!!

Respuesta

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas