Crear consulta de Power query usando Macros en Excel – extraer de PDF

🔥 Le quiero agradecer a Gerardo de España que gracias a los videos de mi canal, se decidió a enviarme su macro.

👉 En este video muestro cómo se crea una conexión de Power Query e insertar código M en una consulta.

✔️ También veremos cómo extraer datos de archivos PDF aunque no tengas Office 365.

Ver Video Crear consulta de Power query usando Macros en Excel

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

Contexto

Con el editor de PowerQuery podemos acceder a múltiples origenes de datos, creando una consulta, transformado los datos y cargarlos en una hoja de Excel. Lo que sucede es que sólo en la versión Office 365 tiene la opción habilitada de conectar con archivos PDF.

Para poder realizar esa conexión en versiones de Office 2019, 2016 hay que crear una consulta en blanco y abrir el editor avanzado. En el editor avanzado de PowerQuery tenemos que escribir la línea de “código M” con la “ruta + nombre del archivo pdf” completa.

Ver video del canal EXCELeINFO: https://www.youtube.com/watch?v=RrXPeOXSJL4

La macro

Para facilitar este proceso, esta macro genera una consulta con un archivo PDF (sin utilizar el editor avanzado de PowerQuery). Después solo tienes que editar la consulta con PowerQuery para elegir las tablas, transformarlas y cargar los datos en una hoja de tu libro de Excel (o lo que necesites).

Código VBA de la macro

'=================================================================================================================================================
'* Nombre: Consulta para obtener datos de tablas desde archivos PDF
'* Autor: GATRNP - (Gerardo)
'* Website Autor:
'* Post o video:
'* Versión: 1.1 - Noviembre 2021
'* Testado en: Excel 2019
'* Etiquetas: VBA, Excel, Macros, PDF, Power Query
'* Descripción: Crea una consulta a un archivo PDF que después editas para transformar y cargar los datos que quieras desde el editor PowerQuery
'==================================================================================================================================================
Option Explicit

Sub CreaConsultaPDF()

'Definición de varibles
Dim strFiltro, strTitulo As String
Dim strRutaArchivoPdf As String
Dim strCodigoMcompleto, strNombreConsulta As String

'Variable filtro y Título como parametros del metodo GetOpenFilename
strFiltro = "Archivos PDF (*.pdf),*.pdf"
strTitulo = "Seleccionar archivo PDF - Para crear una conexión con archivos PDF"

'Seleccionar ruta completa del archivo con el metodo GetOpenFilename
strRutaArchivoPdf = Application.GetOpenFilename(strFiltro, 1, strTitulo)

'Validar si elegimos un archivo PDF
If strRutaArchivoPdf = "Falso" Then
    Exit Sub
Else
    'Linea en código M (para PowerQuery) para asignar en la consulta. Incluye la variable 'strRutaArchivoPdf'
    strCodigoMcompleto = "Origen = Pdf.Tables(File.Contents(" & VBA.Chr(34) & strRutaArchivoPdf & VBA.Chr(34) & "))"
End If

'muestra el panel de consultas y conexiones en caso de que esté oculto
If Application.CommandBars("Queries and Connections").Visible = False Then
    Application.CommandBars("Queries and Connections").Visible = True
    Application.CommandBars("Queries and Connections").Width = 400
Else
    Application.CommandBars("Queries and Connections").Width = 400
End If

'Variable que construye un nombre único para nombrar la consulta
' - con este metodo conseguimos que cada consulta tenga un nombre diferente y podemos crear varias consultas en el mismo libro
strNombreConsulta = "Qry-" & Format(Date, "yyyy") & Format(Date, "mm") & Format(Date, "dd") & Format(Time, "hh") & Format(Time, "nn") & Format(Time, "ss")

'Crea la consulta (donde se aplican las variables de 'strNombreConsulta' y 'strCodigoMcompleto')
ActiveWorkbook.Queries.Add strNombreConsulta, Formula:="let" & Chr(10) & strCodigoMcompleto & Chr(10) & "" & Chr(10) & "in" & Chr(10) & "    Origen"

End Sub

'=============================================================
'* EXCELGRAFÍA
'* - Sergio Alejandro Campos de EXCELeINFO
'*      - https://www.youtube.com/watch?v=OvvaqV_LW10
'* - Datapeaker
'*      - https://datapeaker.com/en/powerbi/abrir-el-panel-consultas-y-conexiones-mas-amplio/
'
'=============================================================

Descarga el archivo de ejemplo

Copia de v1.1-DatosDePDF.zip

Si te gustó este tutorial, por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: