jueves, 28 de septiembre de 2017

VBA: Abrir un pdf en una página específica

Puede parecer sencilla la tarea de hoy: abrir un pdf en una hoja específica desde Excel...
Y verás muchos métodos buscando por Internet... pero el truco de hoy es el único que asegura la meta de poder abrir un fichero pdf desde Excel en la página deseada.

Otras formas sí consiguen abrir el pdf sin problemas, pero nunca en la página requerida:
- Usando la herramienta de hipervínculo
- la función HIPERVINCULO
- incluso con programación, creando el objeto IE...

todos ellos llevan a un punto no deseado... la primera página del documento.


Para solucionar la cuestión emplearemos la función SHELL de VBA que ejecutará la aplicación IE (el navegador Internet Explorer), y en éste es donde se abrirá el documento pdf en la página solicitada.

Y ahora la solución... en un módulo estándar incluimos el siguiente y sencillo procedimiento:

Sub AbrirPDFpaginaEspecifica()
'ruta del pdf: X:\carpeta\fichero.pdf
strVinculo = ActiveCell.Value
Dim pagina As Long
pagina = InputBox("Indica la página del pdf donde situarte", "Arir pdf")
'empleando la función Shell para ejecutar IE
'y abrir en él el archivo indicado a modo de ruta en la celda activa
Shell ("C:\Program Files\Internet Explorer\iexplore.exe " & strVinculo & "#page=" & CLng(pagina))
End Sub



Al ejecutar nuestra macro, y completar el dato solicitado en el InputBox, el resultado es el esperado:

VBA: Abrir un pdf en una página específica

2 comentarios: