Como buscar archivos establecer URL y hacer un hyperlink al fichero





Anteriormente se mostró una macro que busca archivos en un directorio y determinaba su ruta o path, luego otra macro que busca archivos en un directorio y obtiene su dirección, ruta o path; en esta oportunidad muestro una conjunción de ambas macros, es decir una macro que busca un archivo en un directorio, determina su ruta o path lo escribe en una celda y hace un link al archivo.

Antes de continuar con el presente ejemplo, recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, 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.

  

El vídeo muestra la macro en acción y una explicación gráfica de la macro y su codificación, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo Crear una factura con Excelbuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mailconectar Excel con Access y muchos ejemplos más.







  

Para una mejor y más fácil compresión del ejemplo, sugiero descargar el fichero de ejemplo, éste es un archivo comprimido ZIP, en el se encontrarán el archivo con la macro y una carpeta con un conjunto de archivos que usa la macro para buscar los mismos; la única condición es que se descargue y se descomprima en el mismo directorio, es decir debe el archivo con la macro y el directorio con archivos de ejemplo estar en la misma ruta o path; se puede descargar desde el link del final en forma gratuita, considera aportar para sostener el sitio, al descargar el fichero se podrá observar un botón denominado ejecutar, presionando se puede ver la macro en acción.

⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛
Lee también:
Como enviar desde Excel mail con hiperlink en el cuerpo del mensaje
Como crear un link o hiperlink a google maps
Como buscar un dato en Excel y crear link o hipervinculo al registro
⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛⇛

Desde el botón EJECUTAR, la macro busca los número o códigos que se encuentran en la columna A del libro Excel de ejemplo, lo busca en la carpeta que se proporciona como ejemplo en el archio comprimido que se descarga, los archivos comienzan su nombre con el número del código que está en la columna A, se busca archivo por archivo, una vez encontrado en la columna F la macro escribirá la ruta o path y en la columna A en la misma celda donde está el código o número se creará un link al archivo, haciendo click en el link se podrá abrir el archivo de Excel relacionado.

La macro recorrerá todas las filas de la columna A y buscará en la carpeta que se descargó a forma de ejemplo si el archivo se encuentra allí en el caso positivo crea en la misma columna A un link a dicho archivo o fichero, pudiendo hacer click en el link y automáticamente abrirá el fichero de Excel.

En un primer momento se hace un bucle recorriendo cada uno de los archivos, se carga en la variable nomfic el nombre del fichero que en ese momento recorre el bucle y se extrae del nombre del archivo los primeros números que son los que coinciden con el número o código de la columna A, se hace con el siguiente código.

nomfic = Val(Left(b, esp))

Si el nombre del fichero coincide con alguno de la columna A del libro de Excel, copia en la columna F el código y en la misma fila de la columna A el link, que se hace con el siguiente código:

ruta = path1 & "\" & b
texhipv = a.Range("A" & codigo.Row)

a.Hyperlinks.Add Anchor:=a.Range("A" & codigo.Row), Address:=ruta, TextToDisplay:=texhipv

Por último para finalizar la macro aparece un cartel msgbox avisando la cantidad de ficheros encontrados.


Código que se inserta en un módulo



Sub hiperlinkficheroYURL()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim path1 As String, ruta As String, texhipv As String
Set a = Sheets(ActiveSheet.Name)
uf = a.Range("A" & Rows.Count).End(xlUp).Row
path1 = ActiveWorkbook.Path & "\322 PruebaHyper"
Set fso = CreateObject("Scripting.FileSystemObject")
Set carpeta = fso.getfolder(path1)
Set ficheros = carpeta.Files
NunFich = 0
For Each ficheros In ficheros
    b = ficheros.Name
    esp = InStr(b, " ")
    nomfic = Val(Left(b, esp))
busco = nomfic
Set codigo = a.Range("A5:A" & uf).Find(busco, LookIn:=xlValues, LookAt:=xlWhole)
If Not codigo Is Nothing Then
ruta = path1 & "\" & b
a.Range("F" & codigo.Row) = ruta
texhipv = a.Range("A" & codigo.Row)
dire = codigo.Row
a.Hyperlinks.Add Anchor:=a.Range("A" & dire), Address:=ruta, TextToDisplay:=texhipv
NunFich = NunFich + 1
End If
Next ficheros

Set carpeta = Nothing
Set ficheros = Nothing
MsgBox ("Se encontraron " & NunFich & " ficheros en la carpteta seleccionada"), vbInformation, "AVISO"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
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.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends