Contactos

VBA y Power BI: conecta Excel con tus informes

noviembre 4, 2026 Tuto Excel 14 min read
VBA y Power BI: conecta Excel con tus informes

VBA y Power BI pueden trabajar juntos aunque no sean la misma herramienta: Excel prepara y conserva los datos, VBA automatiza tareas dentro del libro y Power BI convierte esa información en informes visuales. En este tutorial usarás un libro de ventas mensuales para que termines con una tabla preparada, una macro de actualización y un informe de Power BI Desktop que puedes refrescar.

El flujo está pensado para Excel 2016 o posterior con Power Query integrado y Power BI Desktop. Las técnicas de VBA también están disponibles en versiones anteriores de Excel de escritorio, pero Power Query no viene integrado en Excel 2010 o 2013. Los datos y pasos se comprobaron en octubre de 2026.

Qué es VBA y cómo se relaciona con Power BI

VBA (Visual Basic for Applications) es el lenguaje con el que Excel automatiza acciones dentro de un libro. Puede abrir y guardar archivos, actualizar una consulta de Power Query, escribir fórmulas o modificar celdas. La función POTENCIA (POWER), por ejemplo, eleva un número a una potencia.

Power BI es la herramienta donde consultas los datos, organizas un modelo y construyes visualizaciones. Puede leer un libro de Excel, una carpeta o una base de datos, importar sus tablas y crear una medida de ventas.

El flujo del libro de este tutorial tiene tres capas:

  1. Excel conserva y revisa la tabla de ventas.
  2. Power Query prepara esa tabla y deja registradas las transformaciones.
  3. VBA actualiza el archivo antes de que Power BI Desktop lo importe.

En el ejemplo, Excel calculará cada importe con una fórmula. Power Query conservará las columnas limpias. La macro actualizará la información y Power BI mostrará el total por producto.

Nota: los ejemplos de fórmulas usan punto y coma porque es el separador de argumentos en la configuración regional correspondiente. Donde Excel usa punto decimal, como en la configuración regional de México o Estados Unidos, los argumentos se separan con coma.

Dónde preparar el flujo entre Excel y Power BI

La preparación comienza dentro de Excel. En el libro Ventas.xlsx, crea una hoja llamada Ventas con la información mensual. Power Queryallows después elegir esa hoja como origen.

Para abrir las herramientas de importación en Excel 2016 o posterior:

DatosObtener y transformar datosObtener datos

En Power BI Desktop, el archivo Excel se elige desde Obtener datos. El flujo termina en el archivo real que contiene los datos, no en una copia temporal. Por eso, la macro actualizará ese archivo y guardará los cambios antes de la importación.

VBA interviene en la preparación y actualización. Puede:+ «`cinta Datos > Obtener y transformar datos > Actualizar todo

+ Guardar el libro antes de que Power BI Desktop lo abra.

+ Repetir operaciones de preparación sin realizarlas manualmente cada vez.

+ Comprobar que el archivo esté en la ruta esperada antes de actualizarlo.

La carpeta de trabajo de Power BI Desktop guarda el informe y sus pasos. Conviene mantener allí el informe `.pbix`, mientras que el libro `.xlsm` puede conservarse en la carpeta de datos que utiliza el informe.

### Qué aporta cada herramienta al flujo

| Herramienta | Prepara | Transforma | Calcula | Publica y visualiza |
|---|---|---|---|---|
| Excel | Entrada y revisión manual | Limitada mediante filtros y fórmulas | Fórmulas y tablas | No es su función principal |
| VBA | Acciones repetitivas en Excel | No transforma tablas como Power Query | Puede escribir o leer fórmulas | Prepara y actualiza archivos |
| Power Query | Selecciona y limpia orígenes | Columnas, tipos, filas y combinaciones | No es para cálculos celda a celda | Entrega una tabla preparada |
| Power BI | Conecta los orígenes | Usa las transformaciones guardadas | Medidas y columnas calculadas | Crea y publica informes |

Por ejemplo, Excel calcula `Unidades × Precio unitario`; Power Query puede convertir Fecha en tipo fecha y eliminar filas vacías; VBA actualiza la consulta; Power BI agrega el Importe por Producto.

### Qué versiones y componentes necesitas

[Power Query](https://support.microsoft.com/es-es/excel/about-power-query-in-excel) está integrado desde Excel 2016. En Excel 2010 y 2013 puede utilizarse como complemento. [VBA](https://learn.microsoft.com/es-es/office/vba/library-reference/concepts/getting-started-with-vba-in-office) se abre con `Alt+F11`; para insertar código, utiliza **Insertar > Módulo** dentro del editor.

Para completar la práctica necesitas Excel 2016 o posterior, un libro habilitado para macros y Power BI Desktop. En Mac, `Alt+F11` puede no coincidir con el atajo del sistema. Copilot depende de la licencia y del canal de actualización de Microsoft 365.

## Prepara una tabla de ventas para Power BI

Abre Excel y crea el libro **Ventas.xlsx**. Añade una hoja llamada **Ventas**. Escribe estos encabezados en A1:E1: Producto, Fecha, Unidades, Precio unitario e Importe. En A2:E5 pega los datos de abajo.

Después, selecciona **D2** y escribe la fórmula del importe. Su resultado es 150,00. Arrastra el controlador de relleno de D2 hasta D5 para calcular las demás filas.

```hoja
celda: D2
formula: =B2*C2
resalta: D2:D5
nota: D2: Arrastra el controlador de relleno hasta D5
pestaña: Ventas
|   | A | B | C | D | E |
| 1 | **Producto** | **Fecha** | **Unidades** | **Precio unitario** | **Importe** |
| 2 | Teclado | 05/01/2026 | 3 | 50,00 | 150,00 |
| 3 | Mouse | 08/01/2026 | 5 | 25,00 | 125,00 |
| 4 | Monitor | 10/01/2026 | 2 | 180,00 | 360,00 |
| 5 | Cable USB | 12/01/2026 | 8 | 10,00 | 80,00 |

La tabla queda lista para importarse. No necesitas convertirla todavía en un objeto Tabla para que Power BI Desktop pueda leer el rango, pero sí conviene hacerlo para mantener una fuente estructurada y ampliable.

Comprueba: E2:E5 muestran 150,00; 125,00; 360,00 y 80,00. El total de las cuatro ventas es 715,00.

Comprueba que los datos no tengan filas ocultas

Ahora convierte el rango en una tabla y revisa que no falte información. Selecciona A1:E5 y abre:

InsertarTablasTabla

En el cuadro Crear tabla, confirma que el encabezado está en A1 y que el intervalo es $A$1:$E$5. Pulsa Aceptar. Excel aplica el formato de tabla y añade los controles de filtro.

Comprueba ahora cada fila. Todas deben tener producto, fecha, unidades y precio. La tabla final queda así:

A1fx**Producto**
A B C D E
1 Producto Fecha Unidades Precio unitario Importe
2 Teclado 05/01/2026 3 50,00 150,00
3 Mouse 08/01/2026 5 25,00 125,00
4 Monitor 10/01/2026 2 180,00 360,00
5 Cable USB 12/01/2026 8 10,00 80,00
Ventas

Si una fila aparece oculta, no la elimines automáticamente. Quita el filtro o revisa la altura de fila antes de continuar.

Comprueba: la hoja contiene cuatro ventas completas y ninguna fila está oculta.

Exporta los datos con Power Query desde Excel

En Excel 2016 o posterior, selecciona cualquier celda de la tabla y entra en:

DatosObtener y transformar datosObtener datos

Elige el origen Archivo de Excel y selecciona Ventas.xlsx. Cuando se abra el explorador de archivos, entra en la hoja Ventas. En el navegador de Power Query, comprueba que estén las cinco columnas y pulsa Cargar para enviarla al libro como tabla.

La hoja original conserva los datos. Power Query crea o actualiza una conexión y, si utilizas Cargar en, también puede insertar una hoja con los datos transformados. Para este flujo, carga la tabla en Ventas y conserva visible la fuente original.

A1fx**Producto**
A B C D E
1 Producto Fecha Unidades Precio unitario Importe
2 Teclado 05/01/2026 3 50,00 150,00
3 Mouse 08/01/2026 5 25,00 125,00
4 Monitor 10/01/2026 2 180,00 360,00
5 Cable USB 12/01/2026 8 10,00 80,00
Ventas

Limpia las columnas antes de cargar los datos

En Power Query, comprueba los tipos de cada columna antes de cargar. Usa Transformar > Tipo de datos o el menú de tipo situado junto al encabezado.

Columna Tipo que debe tener Motivo
Producto Texto Permite agrupar por producto
Fecha Fecha Permite filtrar y crear jerarquías temporales
Unidades Número entero Cuenta las unidades vendidas
Precio unitario Decimal Conserva los decimales del precio
Importe Número decimal Permite sumar las ventas

Elimina las filas vacías desde Inicio > Eliminar filas > Eliminar filas vacías. No elimines una fila solo porque Importe sea cero: puede representar una venta gratuita o una devolución válida.

Nota: Power Query transforma tablas enteras. No se usa para calcular =B2*C2 celda a celda; esa fórmula pertenece a Excel. Si la consulta usa fórmulas propias, están en lenguaje M, no en la sintaxis de las funciones de Excel.
Comprueba: Fecha está identificada como fecha, Unidades como número entero y los dos importes monetarios como números decimales.

Usa VBA para actualizar el archivo de Power BI

La macro debe actualizar la consulta de Power Query y guardar el libro antes de que Power BI Desktop lo importe. Para crearla, abre el editor con Alt+F11. En el editor, elige Insertar > Módulo y pega el siguiente código.

La ruta debe apuntar al archivo que usa el informe de Power BI. Si Power BI Desktop ya tiene el libro abierto desde una ruta anterior, ajusta rutaExcel para que apunte al mismo archivo.

Option Explicit

Sub ActualizarParaPowerBI()
    Dim rutaExcel As String

    rutaExcel = "C:\Informes\Ventas.xlsx"

    If Dir(rutaExcel) = "" Then
        MsgBox "No se encuentra el archivo de Excel.", vbExclamation
        Exit Sub
    End If

    Workbooks.Open FileName:=rutaExcel
    ActiveWorkbook.RefreshAll
    ActiveWorkbook.Save
    ActiveWorkbook.Close SaveChanges:=False

    MsgBox "El archivo de Excel está actualizado.", vbInformation
End Sub

Para ejecutarla, vuelve a Excel con Alt+F11, abre la lista con Alt+F8, selecciona ActualizarParaPowerBI y pulsa Ejecutar.

El archivo de Excel está actualizado.
Comprueba: aparece el mensaje de confirmación y la fecha de modificación del archivo Ventas.xlsx cambia.

Escribe la macro con nombres de función en inglés

Las propiedades Range.Formula, FormulaLocal, FormulaR1C1 y FormulaR1C1Local tienen reglas importantes. .Formula utiliza referencias A1 y exige nombres de función en inglés con coma como separador. .FormulaLocal utiliza el idioma y el separador del usuario.

Si una macro necesita calcular el Importe, esta asignación es válida:

Range("E2:E5").FormulaR1C1 = "=RC[-2]*RC[-1]"

Equivale a =C2*D2 en E2 y a =C3*D3 en E3. Al copiar la fórmula con referencias R1C1, Excel ajusta cada celda.

En cambio, esta línea produce un error 1004 en un Excel en español:

Range("E2:E5").FormulaR1C1 = "=SUMA(RC[-2]*RC[-1])"

La variante correcta con .Formula es:

Range("E2").Formula = "=C2*D2"

Si se necesita la función SUMA en español y el separador local, utiliza .FormulaLocal:

Range("F1").FormulaLocal = "=SUMA(E2:E5)"
Nota: .Formula y .FormulaR1C1 no cambian según el idioma: siempre esperan nombres de función en inglés y comas.

Graba primero una actualización automática

Si todavía no conoces los comandos de VBA, utiliza la grabadora. En Excel, entra en Programador > Código > Grabar macro. Si la pestaña Programador está oculta, actívala mediante Archivo > Opciones > Personalizar cinta de opciones.

Asigna el nombre ActualizarVentas y elige una combinación Ctrl+letra. Después, selecciona la tabla y ejecuta:

DatosObtener y transformar datosActualizar todo

Detén la grabación y abre el código con Alt+F11. La grabadora te mostrará los objetos, métodos y propiedades utilizados. Puedes conservarla como base y ajustar después la ruta del archivo.

Sub ActualizarVentas()
    ThisWorkbook.RefreshAll
    ThisWorkbook.Save
End Sub
Cuidado: guarda el libro como .xlsm (Libro de Excel habilitado para macros). Un archivo .xlsx no conserva las macros al guardarlo.

Publica el resultado y actualiza los datos

En Power BI Desktop, selecciona Obtener datos > Excel. Elige Ventas.xlsx, selecciona la hoja Ventas y marca la tabla. Al confirmar, Power BI crea una consulta y una tabla para importarla.

  1. Abre Obtener datos > Excel.
  2. Selecciona C:\Informes\Ventas.xlsx.
  3. Elige la hoja Ventas.
  4. Confirma la tabla y la carga en el modelo.
  5. Crea una tabla visual con Producto, Fecha e Importe.

La tabla debe mostrar las mismas cuatro ventas que Excel. El total de la columna Importe debe ser 715,00.

A1fx**Producto**
A B C D E
1 Producto Fecha Unidades Precio unitario Importe
2 Teclado 05/01/2026 3 50,00 150,00
3 Mouse 08/01/2026 5 25,00 125,00
4 Monitor 10/01/2026 2 180,00 360,00
5 Cable USB 12/01/2026 8 10,00 80,00
Ventas

Después de cada actualización de Excel, vuelve a Power BI Desktop y usa Actualizar en la consulta o en la vista de datos. Si el archivo cambió de ubicación, actualiza también la ruta del origen.

Comprueba: la suma de Importe en Power BI es 715,00 y coincide con la suma de E2:E5 en Excel.

Revisa la actualización y conserva los pasos

Comprobación En Excel En Power BI Resultado esperado
Filas cargadas A2:E5 Tabla importada 4 ventas
Total de importe E2:E5 Suma de Importe 715,00
Fecha Columna B Campo Fecha 4 fechas recognized
Nombre de producto Columna A Campo Producto 4 categorías
Preparación Tipos de Power Query Consulta Las mismas columnas

Los pasos de Power Query quedan guardados en el informe. En la próxima actualización se repiten: quitar filas vacías, asignar tipos y cargar la tabla. No debes repetir esas acciones manualmente.

Para comprobar una fila concreta, compara Importe en ambos programas. Por ejemplo, Monitor debe mostrar 360,00 en Excel y 360,00 en la tabla de Power BI.

Nota: una actualización de datos no conserva todos los cambios visuales de una tabla. Esos cambios pertenecen al informe .pbix; las transformaciones de Power Query pertenecen a la consulta. Guarda ambos archivos.

Resuelve los errores de conexión y de fórmula

Una actualización puede fallar sin que los datos de Excel estén dañados. Separa el origen, la fórmula y la disponibilidad de las herramientas.

Error 1004 de VBA: aparece al escribir una fórmula en .Formula con un nombre en español. La propiedad espera funciones en inglés y comas. Usa =SUM(...) con .Formula o =SUMA(...) con .FormulaLocal.

Origen de datos no disponible: Power BI no encuentra el archivo, la carpeta cambió o el permiso fue retirado. Comprueba la ruta, el nombre, los permisos y que la aplicación esté disponible.

Columnas que cambian: una tablaReceived añade, elimina o cambia el nombre de una columna. Power Query conserva los pasos, pero una transformación puede dejar de encontrar la columna esperada. Revisa los encabezados del origen y ajusta el paso correspondiente.

Sub ComprobarOrigen()
    Dim ruta As String

    ruta = "C:\Informes\Ventas.xlsx"

    If Dir(ruta) = "" Then
        MsgBox "El origen no está disponible.", vbExclamation
    Else
        MsgBox "El origen está disponible.", vbInformation
    End If
End Sub

Corrige el error 1004 al escribir una fórmula

Si aparece el mensaje «Se ha producido el error '1004' en tiempo de ejecución», mira la fórmula asignada a .Formula. Esta versión es válida:

Range("F1").Formula = "=SUM(E2:E5)"

En .Formula, SUM es el nombre en inglés y la coma separa los argumentos. Si necesitas escribir con las reglas del Excel en español, utiliza:

Range("F1").FormulaLocal = "=SUMA(E2:E5)"

No cambies la fórmula a =SUMA(...) mientras permanezca en .Formula.

Comprueba: F1 muestra 715,00 y el editor VBA no interrumpe la ejecución con el error 1004.

Recupera una actualización que no encuentra el archivo

  1. Abre Power BI Desktop y entra en Obtener datos > Excel.
  2. Repite la selección del archivo Ventas.xlsx.
  3. Comprueba que la ruta escrita en rutaExcel coincide exactamente con la ubicación real.
  4. Verifica que tienes permiso para leer el archivo.
  5. Cierra el libro en Excel si está bloqueado por otra aplicación y repite la actualización.
  6. Guarda el informe .pbix después de corregir el origen.

Si la macro funciona pero el archivo no existe, el mensaje «No se encuentra el archivo de Excel.» aparece antes de que Power BI intente importar. Esa comprobación evita depender del availability of Power BI Desktop para detectar una ruta incorrecta.

Nota: el flujo debe terminar en el archivo real. Copiar datos a una ubicación temporal y forgetting esa ruta rompe la actualización.

Entiende los límites de Excel, VBA y Power BI

Elemento Lo que sí hace Lo que no hace
Excel Guarda, calcula, filtra y conecta Power Query Excel para la web no ejecuta macros VBA
VBA Automatiza acciones dentro del libro de escritorio No sustituye el modelo semántico de Power BI
Power Query Limpia y combina tablas con pasos guardados No calcula fórmulas celda a celda
Power BI Conecta, modela, visualiza y publica No reemplaza la revisión de los datos en Excel
Copilot Añade funciones de IA según licencia y canal Sus novedades no están disponibles en todas las instalaciones

Excel tiene 1.048.576 filas y 16.384 columnas en sus versiones de escritorio modernas. Esa capacidad no garantiza que una actualización con VBA sea rápida si recorre miles de celdas una por una. En archivos grandes, conviene reducir el rango, trabajar con matrices en memoria o desactivar temporalmente Application.ScreenUpdating.

Power BI Service y Power BI Desktop tienen funciones distintas. El archivo .pbix se prepara en Desktop y se publica en Service. Power Query transforma fuentes; Power BI crea medidas y visuales.

Nota: Copilot, la actualización de algunas funciones y otras novedades dependen de la licencia y del canal de actualización. No son requisitos obligatorios para construir el flujo descrito aquí.

Lo que ya sabes hacer con VBA y Power BI

  • Preparar una tabla de ventas con Producto, Fecha, Unidades, Precio unitario e Importe.
  • Calcular los importes en Excel y convertir el rango en una Tabla.
  • Limpiar columnas y tipos con Power Query.
  • Actualizar y guardar el archivo con una macro VBA.
  • Escribir fórmulas VBA con .Formula en inglés o .FormulaLocal en español.
  • Importar la tabla en Power BI Desktop y comprobar que el total coincida con Excel.
  • Diagnosticar errores 1004, rutas incorrectas y cambios en columnas.

El siguiente paso es ampliar el libro con una tabla Productos que incluya Producto y Categoría. Después podrás medir las ventas por categoría en Power BI y comparar ese resultado con el resumen de Excel.

Comprueba: el libro de ventas está preparado, la macro actualiza el archivo y el informe de Power BI muestra 715,00 en el total de Importe.

Fuentes

  1. MicrosoftOver 5 million subscribers are embracing Power BI for modern …consultado el 28/10/2026
  2. MicrosoftPOTENCIA — documentación oficialconsultado el 28/10/2026
  3. MicrosoftRange.Formula, FormulaLocal, FormulaR1C1 y FormulaR1C1Local — documentación oficialconsultado el 28/10/2026
  4. MicrosoftEl editor de VBA y la primera macro — documentación oficialconsultado el 28/10/2026
  5. MicrosoftPower Query (Obtener y transformar datos) — documentación oficialconsultado el 28/10/2026