Como hacer hipervinculos masivos con una macro

Tengo una duda de como hacer una macro que me genere Hipervínculos de forma masiva cuando escojo un rango de celdas, tengo un listado consecutivo como el que muestro aquí abajo:

J.2.5.9.34

J.2.5.9.35

J.2.5.9.36

J.2.5.9.37

Y tengo una carpeta con archivos pdf con los nombres exactos a los que tengo en la lista de Excel, quiero una macro que al correrla y seleccionar un rango de celdas por ejemplo de A34 : A44 me haga el hipervínculo buscando el pdf que le corresponda,

nota: vi una macro en esta pagina:

Sub modhiper()
rutanueva = "C:\LIBRO DE  PROYECTO KU-B\INTEGRACION\SECCIÓN J\J.2\J.2.5\J.2.5.9.38.pdf"

Do While ActiveCell.Value <> ""

Seria algo así como cuando uno arrastra el contenido de una celda hacia abajo y se pone el numero consecutivo en las celdas de abajo que cambiara el hipervínculo también en consecutivo. Espero haberme explicado un poco y me puedan ayudar.

saludos.

ActiveSheet.Hyperlinks.Add anchor:=ActiveCell, Address:=rutanueva, TextToDisplay:="J.2.5.9.38.pdf"

ActiveCell.Offset(1, 0).Select

Loop

End Sub

Pero esta macro me pone el mismo nombre y el mismo hipervnculo en todas las celdas hasta que encuentra un espacio para de ejecutarse, y yo quiero que cambie el hipervínculo siguiendo un consecutivo.

1 respuesta

Respuesta
1

Luis fernando, tienes la siguiente función en Ecel:

HIPERVINCULO(ubicación_del_vínculo;nombre_descriptivo)

La escribes en la celda contigua a uno de los datos que replican el nombre de archivo y arrastras hacia abajo. Esto te crea los hipervínculos automáticamente. La ubicación sería el directorio donde se encuentra el archivo más el nombre, que está en la celda contigua (igual tienes que añadir la extensión con &".pdf". El nombre descriptivo es lo que quieres visualizar en la celda.

p. Ej. si el nombre de archivo está en A1 se pone en A2: HIPERVINCULO("MIS DOCUMENTOS\"&A1&".PDF"; "CLIQUE AQUÍ PARA VER DOC")

Si no te abre igual tienes que poner la dirección completa del documento, en mi caso para Mis Documentos es: "C:\Users\Miguel\Documents\"

Muchas gracias por tu respuesta lo único malo es que no requiero hacer una función si no una macro ya que al generar la función el nombre ya no quedaría J.2.3... si que quedaría una fórmula en la celda y eso es lo que no quiero, visualmente si se vería el nombre pero cuando se selecciona la celda se ve la fórmula en la barra de función, por eso requiero una macro.

Espero me puedas ayudar.

Gracias.

Si el problema es que se pueda ver la fórmula en un momento dado lo puedes evitar poniendo las celdas como ocultas en el formato de celdas, así no habría posibilidad de ver las fórmulas al seleccionar, sólo se vería el resultado, pero la hoja debe estar protegida para ello (con clave si quieres).

No sé si esto te valdría.

Lo que pasa esto es un libro de proyecto donde se vinculan los índices con una carpeta de archivos escaneados y ya terminado este se entrega al cliente, por eso es ñtoy buscando una macro que haga las ligas pues ya cuando se entrega al cliente se elimina la macro y solo queda el resultado de vincular cada celda con su respectivo archivo de la carpeta de los escaneados.

Entonces aquí te va la macro. Seleccionas el rango y ejecutas. Tienes que cambiar la dirección de los ficheros y el texto que quieres que se vea. Si es el nombre que figura en cada celda entonces .Cells(c.Row, c.Column).Value sin comillas.

Sub ConvertirEnHipervinculo()
With ActiveSheet
For Each c In Selection
 .Hyperlinks.Add Anchor:=.Cells(c.Row, c.Column), _
 Address:="C:\Users\Miguel\Documents\" & .Cells(c.Row, c.Column).Value & ".pdf", _
 ScreenTip:="", _
 TextToDisplay:="clicar"
Next c
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas