martes, 1 de diciembre de 2015

MACRO PARA CREAR HIPERVINCULOS


1   Crear  hipervínculos en Excel es muy fácil, pero si tuviéramos que generar una gran cantidad de estos Seria bastante tedioso crear uno por uno.

Hoy les traigo una macro que nos permitirá crear hipervínculos de forma masiva.

Esta macro hará lo siguiente:
Recorrerá una lista con el nombre de los documentos a los cuales queremos referenciar con el hipervínculo.
Creara el hipervínculo a dichos documentos.

Aquí esta el código:

Curso online de excel


En esta macro son muy importantes las siguientes instrucciones: ffinal = ws.range(“A1”).End(xlDown).row” , esta instrucción nos permitirá saber cual es la ultima fila con datos en la lista de documentos a los cuales crearemos hipervínculo.

Después nos encontramos un ciclo que recorre la hoja de cálculo por la columna A desde la fila 2 hasta la última fila que hemos calculado con datos

La instrucción “ws.Range("A" & i + 1).Hyperlinks.Add anchor:=ws.Range("A" & i + 1), Address:=direccion”  nos permitirá crear el hipervínculo, esta instrucción tiene dos parámetros muy importantes anchor que indica el lugar o celda de la hoja de calculo donde crearemos el hipervínculo y Addres que nos indica la dirección de el documento al cual queremos hacer referencia(para que la macro funcione todos los documentos deben estar en la misma carpeta en que esta nuestro libro de Excel que contiene la macro), a ambos parámetros(anchor y addres) les asignamos la celda en la cual se encuentra “parada” la macro.

Esta es la hoja de cálculo antes de ejecutar la macro:

Cusro online de excel

En el listado solo puse cuatro documentos, pero la lista puede ser tan larga como necesites.

Esta es la hoja de cálculo después de ejecutar la macro:

Como puede ver ya tiene los hipervínculos a los diferentes documentos.

Espero que esta macro te sea útil, si quieres aprender mas sobre Excel y macros visita nuestro curso online. En la sección de libros recomendados encontraras el enlace al libro Excel 2013.MACROS Y VBA donde encontraras mucha mas información sobre estos temas, en este enlace podrás descargar una colección de mas de 20 macros como esta.







8 comentarios:

  1. Excelente, muchas gracias, me sirvió para vincular aproximadamente 3000 celdas. Saludos

    ResponderEliminar
  2. puedes dar un ejemplo, ya que al sustituir los valores de direccion en este caso con la ubicacion de la carpeta con archivos no funciona, consigo un error el cual dice que no fue encontrado el objeto

    ResponderEliminar
    Respuestas
    1. Hola Jesús, no tienes que reemplazar la dirección por la ruta de la carpeta.
      Se escribe tal cual direccion ya que es una de las variables.

      Eliminar
  3. Solo pone u hipervinculo de la primer fila y lo pone mal, pone el vinculo del ultimo archivo en la carpeta

    Sub crear_hipervinculo()
    Dim ws As Excel.Worksheet
    Dim ffinal As Integer
    Dim i As Integer
    Dim direccion As String

    Set ws = ThisWorkbook.Worksheets("Hoja1")
    ffinal = Range("A12").End(xlDown).Row

    For i = 1 To ffinal - 1
    direccion = ThisWorkbook.Path & "\" & ws.Range("A" & i + 1)
    ws.Range("A" & i + 1).Hyperlinks.Add anchor:=ws.Range("A" & ´ + 1), Address:=direccion
    Next i

    ResponderEliminar
  4. como va saber a donde es el enlace_

    ResponderEliminar
  5. Hola, es interesante esta macro.
    En mi caso quiero enlazar archivos de una carpeta automáticamente a la hoja de excel mediante hipervinculos. ¿Esta macro sirve? ¿Dónde hay que poner la dirección de ruta de los archivos? porque 'dirección' está claro que es la variable, pero debe contener la ruta de ubiación de los archivos y aquí no la veo por ningún lado.

    ResponderEliminar
  6. Excelente ejemplo estimado.. una consulta y en el caso en el que un MEDICO QUIERA OBSERVAR QUE INDICACION LE DIO A UN PACIENTE EN DETERMINADO DIA... es decir, en HOJA 1 en el "EJE X" tiene todos los días del mes de ENERO y en el "EJE Y" a todos sus pacientes, al hacer click en cualquier intersección de ambos ejes, lo envié a otra a HOJA 2 para saber que INDICACION LE DIO ESE DIA A ESE PACIENTE. En ese caso que macro seria la mas factible?, gracias de antemano.

    ResponderEliminar