Macro para actualizar (refrescar) Power Query y Power Pivot en Excel.
Aquí les dejo este código que sirve para actualizar Power Query y Power Pivot ordenadamente en Excel. Funciona con consultas (queries) hechas en inglés o en español.
Option Explicit
' Tomado de https://stackoverflow.com/questions/36902975/auto-updating-power-query-connection-via-vba
Sub Actualizar()
Dim Conn As WorkbookConnection
Dim Cname As String
' Actualiza las queries.
For Each Conn In ActiveWorkbook.Connections
If Left(Conn.Name, 8) = "Query - " Or Left(Conn.Name, 8) = "Consulta" Then
Cname = Conn.Name
With ActiveWorkbook.Connections(Cname).OLEDBConnection
.BackgroundQuery = False
.Refresh
End With
End If
Next
' Actualiza el modelo de datos (Power Pivot)
ThisWorkbook.Model.Refresh
MsgBox "Listo"
End Sub
Y de pilón, aquí está cómo pedir un nombre de archivo en Excel.
Sub AbrirArchivo() ' Empiezan por definir el rango RutaAlArchivo. Puede ser Hoja1!A2 o darle un nombre a esa celda. Dim Ruta Ruta = Application.GetOpenFilename("Archivos de Excel (.xls), .xls", , "Archivo de algo") If Not (Ruta = False) Then Range("Hoja1!A2") = Ruta End If End Sub
Excelente. Gracias por publicar.