Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como Recorer Filas y Hacer Hyperlink a Fichero #505

como crear hipervinculos en excel

Macro Para Hacer Hiperlink a Ficheros

En este post se muestra como recorrer las filas de una hoja de Excel con macros y hacer un link, hiperlink o hipervinculo a archivos o ficheros que se encuentran en nuestra PC.

Quieres manejar Excel en forma más eficiente, haz click acá, si quieres aprender sobre Excel en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.

Suscribe a nuestro canal de You Tube, mira el playlist con  vídeos relacionados donde podrás ver la macro en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.

Como Crear Hipervinculos Excel con Macro a un Archivo o Pagina Web

Al descargar y abrir el archivo se observa una hoja donde en una hoja se encuentra el detalle y en otra la URL a la cual requerimos realizar un link o hipervinculo en Excel, es de destacar que funciona indistintamente si es una URL o Dirección de Archivo o Fichero de nuestra PC.

Existen dos botones uno que quita o elimina los hiperlink en Excel, sirve para probar la macro una y otra vez, ya que una borra los hiperlink y el otro botón genera contiene una macro que crea Link o Hiperlink a Ficheros o URL de Web, la macro recorrerá fila por fila generando un link a la URL, estableciendo como texto visible el mismo texto que contenía la columna «Detalle».


Quizás también interese leer:

Formulario inserta hyperlink en celda 
Hyperlink o hipervinculo a Google Maps 
Índice o Hyperlink a hojas de otros libros de Excel 

Explicación del Ejemplo que Permite Crear Link en Excel Automáticamente

Al presionar el botón que permite crear hipervinculos en Excel ejecuta la macro de Excel que crea link a la URL de la columna C, insertando el link en la Columna A, en este ejemplo hay link a páginas WEB, pero pueden ser link a archivos o ficheros que tenemos guardados en nuestra PC, es indistinto si es una URL de una WEB o la dirección de un Archivo o Fichero en nuestra PC, la macro creará de igual forma el link en Excel.

Primero se determina la última fila con datos para saber hasta que fila se debe realizar el bucle que recorre las filas, esto se realiza con el siguiente código:

uf = a.Range(«A» & Rows.Count).End(xlUp).Row

Posterior a ello se realiza un bucle For entre la primer fila y la última fila con datos, de la siguiente forma:

For x = 2 To uf
… mis códigos
Next x

Luego se establece si la celda de la Columna C de fila recorrida por el bucle tiene datos o no en caso solamente de que tenga datos realiza el link creando la macro dicho hipervinculo en la Columna A, de la siguiente forma:

If a.Cells(x, «C») <> Empty Then
…. mis códigos
End If

En caso de que la columna C tenga datos es decir haya una URL se carga en las variables «texhip» y «celhyper», el texto que se debe mostrar en el hipervinculo y el link a la URL propiamente dicho, se usan los siguientes códigos:

texhip = a.Cells(x, «A»)
celhyper = a.Cells(x, «C»)

Por último se crea el código de la macro que genera hypervinculos Excel a una página WEB, usando los siguientes códigos que se explican a continuación:

«a.Hyperlinks.Add»: es hoja donde se creará el hyperlink 

«Anchor:=» se debe ingresar la celda en la cual se creará el hipervinculo o link en Excel.

«Address:=» se debe ingresar cual será la URL a la Web o Dirección del Archivo al que se requiere hacer hipervinculo, 

«SubAdress:=» es opcional y se ingresa a que parte de la página web o archivo se debe posicionar cuando se carga el archivo o navega hasta el link

«TextToDisplay:=» es el texto que se mostrará en el hipervinculo de Excel 

El código en este ejemplo es:

.Hyperlinks.Add Anchor:=a.Cells(x, «A»), Address:=celhyper, SubAddress:=»», TextToDisplay:=texhip


Descarga el Fichero con la Macro de Excel para Crear Hipervinculo Dinámico en Excel – VBA

Desde el final del post se puede descargar el ejemplo en forma gratuita sin ninguna restricción, el código se puede adaptar a cada necesidad, aporta a sostener la esta web si está dentro de tus posibilidades, desde ya muchas gracias.

Código que va en el módulo de Excel – VBA

#If VBA7 And Win64 Then
‘Si es de 64 bits
Public Declare PtrSafe Function ShellExecute Lib «shell32.dll» Alias «ShellExecuteA» (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
Public Declare PtrSafe Function FindWindow Lib «USER32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Public Declare PtrSafe Function GetWindowLongPtr Lib «USER32» Alias «GetWindowLongPtrA» (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr
Public Declare PtrSafe Function SetWindowLongPtr Lib «USER32» Alias «SetWindowLongPtrA» (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
Public Declare PtrSafe Function DrawMenuBar Lib «USER32» (ByVal hwnd As Long) As LongPtr
Public Declare PtrSafe Function RegOpenKeyA Lib «advapire32.dll» (ByVal hKey As LongPtr, ByVal lpSubKey As String, phkResult As LongPtr) As LongPtr
#Else
‘Si es de 32 bits
Public Declare Function ShellExecute Lib «shell32.dll» Alias «ShellExecuteA» (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Declare Function FindWindow Lib «USER32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowLong Lib «USER32» Alias «GetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib «USER32» Alias «SetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function DrawMenuBar Lib «USER32» (ByVal hwnd As Long) As Long
Public Declare Function RegOpenKeyA Lib «advapire32.dll» (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
#End If

Sub CreaLink()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next

‘*********** by marcrodos **** https://macrosenexcel.com *** https://www.youtube.com/c/programarexcel?sub_confirmation=1 ********

Dim uf As String, texhip As String
Set a = Sheets(«Hoja1»)
pf = 2
uf = a.Range(«A» & Rows.Count).End(xlUp).Row
For x = 2 To uf
If a.Cells(x, «C») <> Empty Then
texhip = a.Cells(x, «A»)
celhyper = a.Cells(x, «C»)
a.Hyperlinks.Add Anchor:=a.Cells(x, «A»), Address:=celhyper, SubAddress:=»», TextToDisplay:=texhip ‘para subaddres escribir entre las comilllas o reempazar por var
conta = conta + 1
End If
Next x
MsgBox («Se crearon » & conta & » hiperlinks»)
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Sub Borra()
Range(«A:A»).ClearHyperlinks
Range(«A:A»).ClearFormats
End Sub


Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407

Summary
Author Rating
1star1star1star1star1star
Aggregate Rating
5 based on 1 votes