Macro para llamar archivos pdf

Me puedes ayudar para realizar este macro

Tengo un archivo exel.

Quiero realizar un botón para realizar un llamamiento de archivo pdf

Que se encuentra en el c:monitoreos\a1pdf,a2pdf, a3pdf

Quiero llamar al archivo a1pdf

Pero quiero que al presionar al botón de llamamiento nuevamente se aculte el archivo pdf

1 respuesta

Respuesta
1

Para llamar a un PDF desde Excel necesitas ubicar previamente la ruta del Adobe para colocarla en la instrucción que te dejo de ejemplo:

Sub llamando_PDF()
'en celda A2 coloqué el nombre del archivo que deseo abrir
archivo = Range("A2").Value

'la carpeta que contiene ese archivo
ruta = "D:\Pagos_2012\"

'la ruta del Adobe
llamada = Shell("C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe " & ruta & archivo & ".pdf", vbNormalFocus)
End Sub

Observa que agrego al final la extensión porq en A2 guardé solo el nombre.

PD) Macro extraída de mi manual Programación VBA

mira pongo el código que me ayudaste dentro del

botón commandbuttonn

pero al tratar de ejecutar me sale el siguiente error

"los macros de este proyecto están desabilitados,revise la documentación de la aplicación host para determinar como se habilita las macros"

y la ruta del adobe es: C:archivos de programa(x86)/adobe/Reader 9.0

agradeciendo tu ayuda

Está claro que tu libro Excel tiene las macros deshabilitadas... quizás cuando dibujaste el botón las inhabilitaste...

Abrí el libro HABILITANDO las macros y cambiá la ruta del adobe que dejé en mi ejemplo por la tuya.

Sdos

Elsa

mira ya pude solucionar los problemas que te envíe..

ahora por fa me puedes ayudar :

la ruta de la carpeta donde están los archivos pdf

carpeta principal Monitores\sem 43 dentro de esta carpeta están estas carpetas "a7,a8,a9,a10,a11,a12,a13,a14" y dentro de estas carpetas están los archivos pdf

los archivos pdf se encuentran dentro de las carpetas a7\a8\a9\a10\a11\a12\a13\a14

el problema que tengo es que las carpetas contienen archivo con el mismo nombre

lo que les diferencia son el nombre de las carpetas ya que son nombres especificos

como podría hacer

agradeciendo tu gran ayuda

Estimada Elsa

se me ocurre

no se si haya como hacer lo que pienso

si por ejemplo en la celda a2 colocamos el nombre de carpeta ejemplo "a7"

y en la celda a3 colocamos el nombre del archivo pdf "acaros"

se me ocurre eso

no se como se podría hacer.

agradeciendo tu ayuda

Podes armar una cadena con todo el nombre.

Fijate que yo utilicé 'ruta' para indicar la carpeta principal y 'archivo' para el nombre

Entonces si tu 'ruta' es "...//Monitores\sem 43/" y en celda A2 colocas la subcarpeta 'a7', luego el nombre en celda A3, la cadena sería:

archivo = A2 & "/" & A3

llamada = Shell("C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe " & ruta & archivo & ".pdf", vbNormalFocus)

Y así podes armar cualquier cadena, lo importante es que recuerdes de incluir el separador o en todo caso colocarlo como en mi ejemplo, entre & (también la ruta debe terminar con la barra separadora)

esta haci el código

'en celda A2 coloqué el nombre del archivo que deseo abrir
archivo = m3 & "/" & n3
'la carpeta que contiene ese archivo
ruta = "C:\Monitoreos\sem 43\"
dentro de la carpeta sem43 hay varias carpetas con los nombres de a7,a8,a9,a10,a11,a12,a13

dentro de estas carpetas hay archivo con los nombres "ácaros,oidio,velloso"
llamada = Shell("C:\Program Files (x86)\Adobe\Reader 9.0\Reader\AcroRd32.exe " & ruta & archivo & ".pdf", vbNormalFocus)

quiero quiero que en la celda m3 colocaría la carpeta a7

y en la celda n3 colocaría el nombre del archivo acaros

quiero hacer eso tu

ayuda por favor

En principio se ve este problema;

M3 y n3 son celdas por lo que tenés que usar esta expresión (o alguna otra válida para celdas)

archivo = Range("M3") & "\" & Range("N3")

Y también revisá cómo está escrito el archivo ácaros.pdf,, sin con acento o no.

Si no te está dando resultado enviame imagen del la carpeta donde vea la ruta y el nombre del pdf y solo así podría darme cuenta dónde está el problema.

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas