Macro para generar hipervínculos con parte del nombre.

Necesito crear una macro que me genere hipervínculos. Tengo una hoja con un listado de códigos, de 5 números, y cada código está asociado a un archivo pdf. He probado varias opciones pero el problema que tengo es con la secuencia de la ruta, ya que ese código solo es parte del nombre del archivo que tiene que abrir, y no consigo generar el hipervínculo al archivo que contenga el código independientemente del resto del nombre. ¿Se puede hacer?

Respuesta
1

Si ya tenemos ese código que es parte del nombre del fichero...¿cuál es la otra parte?

¿Cómo la conseguimos?

El resto del nombre de los archivos contiene la fecha y alguna variante más, que no puedo secuenciar; lo único que es correlativo es el código de 5 dígitos.

Pensaba en alguna forma de completar la ruta con algo parecido a *codigo*.pdf, en el cual el * significa lo que sea. Por ejemplo: "20140901_00000_110TL-JOE.pdf", lo único que tengo guardado en mi hoja excel es el código, 00000, y con lo que puedo buscar el pdf correspondiente. 

Para algo así, se me ocurre fabricar una macro, ya que un hipervínculo no lo veo. Algo así:

-Tenemos ese código conocido en una celda y al posicionarnos encima de ella nos abriría el pdf que contiene ese código.

¿Te parece?

Claro claro, la opción que barajo es crear una macro que haga precisamente eso, pero la única macro que he conseguido hacer, generaba un hipervínculo al archivo solamente si le digo el nombre entero correcto, pero si desconozco parte del nombre no. 

Ok, veamos un ejemplo:

-Tenemos anotado en una celda el trocito del archivo que conocemos.

-Deja seleccionada esa celda y después ejecuta esta macro:

IMPORTANTE:

En la tercera línea que empieza por   ruta=......

Tienes que anotar el path de donde están guardados los pdf (deja la barra del final)

En la línea que empieza por SHELL...

Tienes que anotar en el entrecomillado, el path de donde se encuentra el ejecutable de tu versión de acrobat, recuerda dejar un espacio después de la extensión exe y después cierra las comillas

Sub proceso()
'por luismondelo
ruta = "C:\Users\luismondelo\Downloads\"
parte = ActiveCell.Value
Set fso = CreateObject("scripting.filesystemobject")
Set carpeta = fso.getfolder(ruta)
For Each archivo In carpeta.Files
If archivo.Name Like "*" & parte & "*" And Right(archivo, 3) = "pdf" Then
Shell "C:\Program Files (x86)\Nuance\PDF Reader\bin\pdfreader.exe " & archivo, vbNormalFocus
Exit Sub
Else
End If
Next
MsgBox "No existe pdf"
End Sub

1 respuesta más de otro experto

Respuesta

Me gusta mucho tu macro, pero en la línea : como puedo poner para que busque en todas las subcarpetas después de \Downloads\¿?

ruta = "C:\Users\luismondelo\Downloads\"
ruta = "C:\Users\luismondelo\Downloads\"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas