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
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.