Abrir archivos PDF en Excel mediante Combobox usando macros vba

Hola a todos. Los saludo con mucho gusto. En este artículo y video te muestro cómo abrir archivos PDF desde Excel, usando macros VBA. Usaremos un formulario donde habrá un Combobox que servirá para enlistar los nombres de varios archivos PDF y un control llamado WebBrowser1 para mostrar el contenido del archivo PDF elegido.

Devolver nombre de archivos PDF

Primero será necesario tener EXCELeINFO add-in instalado para devolver el nombre de los archivos de cualquier carpeta que tenga archivos PDF. Aquí puedes descargar el add-in.

  • Entramos a la pestaña EXCELeINFO.
  • Seleccionamos Archivos > Listar nombre de archivos de una carpeta…
  • Damos clic en Examinar para elegir la carpeta.
  • Marcamos Extensión y escribimos PDF.
  • Damos clic en Aceptar y se creará un archivo con el detalle de archivos de la carpeta.

Devolvemos la ruta y nombre de los archivos PDF.

Figura 1. Devolvemos la ruta y nombre de los archivos PDF.

La ruta y nombre los archivos nos servirá, ya que en base a ese dato es que el control WebBrowser podrá mostrar el contenido de los archivos PDF, de la misma manera en que mostrarían en un navegador Web.

Ver video Abrir archivos PDF en Excel

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

En el video mostramos paso a paso cómo crear este ejemplo.

Diseñar el Formulario

Entramos al IDE de Visual Basic para Aplicaciones (VBA), damos clic derecho en el nombre del archivo y elegimos Insertar > UserForm. Dentro del formulario insertamos los siguientes controles:

  • Una Etiqueta.
  • Un Combobox.
  • Un Botón para cerrar.
  • Un control WebBrowser.

Para mostrar el control WebBrowser damos clic derecho en una sección en blanco del Cuadro de herramientas y elegimos Controles adicionales. En la lista de Controles disponibles marcamos Microsoft Web Browser.

Control Web Browser para mostrar contenido de archivos PDF.

Figura 2. Control Web Browser para mostrar contenido de archivos PDF.

Cómo funciona el formulario

Primero modificamos el orden de las columnas del archivo, en la columna A dejamos el nombre de los archivos y en la columna B dejamos la ruta completa. El Combobox mostrará los nombres de la columna B y mediante un BUSCARV o VLOOUKUP en VBA devolveremos la ruta completa que se encuentra en la columna B, y en base a esa ruta, el control WebBrowser mostrará el contenido del archivo PDF elegido.

Mostramos el contenido del archivo PDF elegido.

Figura 3. Mostramos el contenido del archivo PDF elegido.

Código VBA de las macros

El evento Initialize del formulario se ejecutará al momento de abrir el formulario y el Combobox se llenará con el nombre de los archivos.

Option Explicit
'
'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Private Sub UserForm_Initialize()
    Dim UltimaFila As Integer
    Dim i As Integer
    Dim Nombre As String
    
    UltimaFila = Application.WorksheetFunction.CountA(ThisWorkbook.Sheets("Hoja1").Range("A:A"))
    
    For i = 2 To UltimaFila
        
        Nombre = ThisWorkbook.Sheets("Hoja1").Cells(i, 1).Value
        Me.ComboBox1.AddItem Nombre
        
    Next i
    
End Sub

El evento Change del Combobox servirá para mostrar el contenido de cada PDF cada vez que se elige un nombre de la lista.

Option Explicit
'
'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Private Sub ComboBox1_Change()
    
    Dim Nombre As String
    Dim RangoMatriz As Range
    
    On Error GoTo ManejadorErrores
    
    Set RangoMatriz = ThisWorkbook.Sheets("Hoja1").Range("A:B")
    
    Nombre = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, RangoMatriz, 2, 0)
    
    Me.WebBrowser1.Navigate Nombre
    
    Exit Sub
ManejadorErrores:
    
    MsgBox "Ha ocurrido un error: " & Err.Description, vbInformation, "EXCELeINFO"
    
End Sub

Descargar el archivo de ejemplo

Descargar el ejemplo Abrir archivos PDF en Excel mediante listado en Combobox usando macros vba – EXCELeINFO.zip

You may also like...