Buscar y Abrir ARchivo PDF desde excel

18/08/2006 - 20:17 por J.P. | Informe spam
Bueno tengo una lista de documentos la clomna A de una hoja de excel
la cual contiene el nombre de los archivos que deseo abrir.

Seria facil si supiera su ubicación pues utilizaria un vinculo normal,
pero el problema es que yo quiero que al dar clic sobre la celda me
busque el archivo que contiene ese nombre y luego me lo abra.

Agradezco de antemano su colaboración.

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
23/08/2006 - 23:52 | Informe spam
hola, chicos !

J.P. escribio en el mensaje ...
... me surgio una incognita como hago referencia a una unidad que no conozco, por decir como me refiero a Mi PC.
... los archivos pueden estar en un CD y dependiendo del numero de bandejas que se tengan el volumen de la unidad cambia.


Vinchenzo vinç escribio en el mensaje ...
... no se si entiendo correctamente lo que planteas.
... aparte del nombre del fichero... estara en una carpeta llamada "Libros" ubicada en la raiz de alguna unidad


que bien puede ser un disco duro, como un disquete, un CD/DVD, una memoria Flash, ..., en C, D, E, F, G, ..., es asi?.



1) [segun parece]... esta 'incognita' lo que hace es 'dejarnos igual que al principio' [es decir, la consulta original donde]...
se requiere 'lanzar' un archivo [.pdf] que pudiera [o no] encontrarse en 'alguna' carpeta y habria que buscar en toda unidad 'posible' -?-

2) la opcion con la propuesta de Vinchenzo [creo que] es la mas adecuada si se 'espera' que dicho archivo este varias veces...
[diferentes versiones/fechas/... en diferentes carpetas] y se requiera elaborar un listado para seleccionar despues 'cual de todos' ;)
[ya sabiendo que la 'espera' por la busqueda -si existe- pudiera resultar en... 'desesperacion'] :D

3) si -nada mas- quieres comprobar si existe [o no] en alguna [o cada] unidad logica [C:, D:, E:, ...,] que este disponible...
prueba con el siguente ejemplo, copiando/pegando las lineas en un modulo de codigo general/normal]...
es una API que lee la estructura de archivos [unidad logica] lo que seria la tabla de alojamiento de archivos [FAT]
solo esta 'preparado' para buscar en unidades 'locales', si necesitas buscar en unidades 'desmontables/flash/...'
te incluyo los codigos aplicables para cada tipo de unidad ;)

4) ya despues tu decides la forma de llamar a la busqueda de archivos [p.e. en los eventos que propone Vinchenzo] con algo +/- asi:

Dim Documento As String
Documento = Buscar_archivo(ActiveCell)
If Documento <> "" Then ThisWorkbook.FollowHyperlink Documento

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

== en un modulo de codigo general/normal==Option Private Module
Declare Function Busca_en_FAT Lib "ImageHlp.dll" Alias "SearchTreeForFile" _
(ByVal Unidad As String, ByVal Archivo As String, ByVal Reserva As String) As Long
Function Buscar_archivo(ByVal Archivo As String)
Dim Disco As Object, Unidad As String: Buscar_archivo = ""
With CreateObject("Scripting.FileSystemObject")
For Each Disco In .Drives
If Disco.DriveType = 2 Then
Unidad = Disco.DriveLetter & ":\": Buscar_archivo = Buscar(Unidad, Archivo)
If Buscar_archivo <> "" Then Exit For
End If: Next: End With
End Function
' Tipos para Disco.DriveType _
0 = "Desconocido" _
1 = "Desmontable" _
2 = "Fijo" _
3 = "Unidad de red" _
4 = "CD-ROM" _
5 = "Disco RAM"
Function Buscar(Unidad As String, Archivo As String) As String
Dim Pos As Long, Tmp As Long, Reserva As String: On Error GoTo No_existe
Reserva = Space(260): Tmp = Busca_en_FAT(Unidad, Archivo, Reserva)
Pos = InStr(Reserva, vbNullChar)
If Not Pos Then Reserva = Left(Reserva, Pos - 1)
Buscar = Reserva: Exit Function
No_existe:
End Function
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida