Cómo extraer datos de facturas XML (CFDI) automáticamente en Word — Macro lista para usar
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Cómo extraer datos de facturas XML (CFDI) automáticamente en Word — Macro lista para usar
Si trabajas en contabilidad o administración, probablemente has perdido horas capturando datos de facturas XML (CFDI) manualmente. Copiar el RFC, UUID o los montos no solo consume tiempo, también aumenta el riesgo de errores que pueden afectar reportes y procesos fiscales.
Para resolver este problema, desarrollé una macro en Word que extrae automáticamente los datos clave de tus archivos XML y los coloca en una tabla lista para usar.
Esta herramienta está pensada para profesionales que buscan trabajar más rápido, reducir errores y automatizar tareas repetitivas.
¿Cuánto tiempo puedes ahorrar automatizando facturas XML?
Procesar facturas manualmente puede tomar entre 2 y 5 minutos por archivo. Si trabajas con solo 50 CFDIs al mes, esto puede representar hasta 4 horas de trabajo operativo.
Automatizar este proceso mejora la productividad, reduce errores humanos y permite enfocarte en tareas de mayor valor dentro de tu empresa.
¿Qué hace esta macro en Word?
- 📥 Leer un XML CFDI versión 4.0
- 📌 Extraer los datos clave automáticamente
- 📄 Insertarlos en una plantilla de Word
- 📧 Prepararlos para enviar por correo (opcional)
¿Para quién es ideal esta macro?
- Contadores
- Auxiliares administrativos
- Despachos contables
- Empresas con alto volumen de facturación
- Profesionales que buscan automatizar procesos
¿Qué datos extrae la macro?
- ✅ RFC del emisor
- ✅ RFC del receptor
- ✅ UUID del comprobante fiscal
- ✅ Monto total de la factura
Código completo de la macro en Word
Presiona Alt + F11 en Word para abrir el editor de VBA, luego inserta un nuevo módulo y pega este código:
Sub LeerMultiplesCFDIsYCrearTabla()
Dim xmlDoc As Object
Dim archivos As Variant
Dim i As Integer
Dim rfcEmisor As String, rfcReceptor As String, uuid As String, total As String
Dim tabla As Table
Dim fila As Integer
Dim excelApp As Object
On Error Resume Next
Set excelApp = GetObject(, "Excel.Application")
If excelApp Is Nothing Then Set excelApp = CreateObject("Excel.Application")
On Error GoTo 0
archivos = excelApp.GetOpenFilename("Archivos XML (*.xml), *.xml", , "Selecciona uno o varios archivos XML", , True)
If Not IsArray(archivos) Then Exit Sub
Set tabla = ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=1, NumColumns:=4)
With tabla
.Cell(1, 1).Range.Text = "RFC Emisor"
.Cell(1, 2).Range.Text = "RFC Receptor"
.Cell(1, 3).Range.Text = "UUID"
.Cell(1, 4).Range.Text = "Total"
.Rows(1).Range.Bold = True
End With
fila = 2
For i = LBound(archivos) To UBound(archivos)
Set xmlDoc = CreateObject("MSXML2.DOMDocument.6.0")
xmlDoc.async = False
xmlDoc.Load archivos(i)
If xmlDoc.ParseError.ErrorCode = 0 Then
xmlDoc.setProperty "SelectionNamespaces", _
"xmlns:cfdi='http://www.sat.gob.mx/cfd/4' xmlns:tfd='http://www.sat.gob.mx/TimbreFiscalDigital'"
On Error Resume Next
rfcEmisor = xmlDoc.SelectSingleNode("//cfdi:Emisor").Attributes.getNamedItem("Rfc").Text
rfcReceptor = xmlDoc.SelectSingleNode("//cfdi:Receptor").Attributes.getNamedItem("Rfc").Text
total = xmlDoc.SelectSingleNode("//cfdi:Comprobante").Attributes.getNamedItem("Total").Text
uuid = xmlDoc.SelectSingleNode("//tfd:TimbreFiscalDigital").Attributes.getNamedItem("UUID").Text
On Error GoTo 0
tabla.Rows.Add
tabla.Cell(fila, 1).Range.Text = rfcEmisor
tabla.Cell(fila, 2).Range.Text = rfcReceptor
tabla.Cell(fila, 3).Range.Text = uuid
tabla.Cell(fila, 4).Range.Text = total
fila = fila + 1
End If
Next i
MsgBox "Se procesaron " & (fila - 2) & " archivos XML.", vbInformation, "Macro CFDI"
End Sub
Así debe verse el resultado:
Descargar o comprar la macro lista para usar
Si prefieres ahorrar tiempo y obtener la macro completamente funcional sin configuraciones adicionales, puedes adquirirla aquí:
👉 Comprar macro para leer XML CFDI
También desarrollo macros personalizadas para empresas o procesos específicos.
📩 Contáctame: zelideth27@gmail.com
Cómo usar esta macro
- Abre Word y presiona Alt + F11.
- Crea un nuevo módulo (Insertar → Módulo).
- Pega el código.
- Guarda el archivo como .docm.
- Ejecuta la macro y selecciona tus archivos XML.
- Obtén automáticamente los datos en una tabla.
Video demostrativo
Beneficios de automatizar la lectura de CFDI
- Ahorro significativo de tiempo
- Menos errores de captura
- Mayor eficiencia operativa
- Mejor control documental
- Procesos administrativos más rápidos
Preguntas frecuentes
¿La macro funciona con CFDI 4.0?
Sí, está diseñada para leer la estructura actual del SAT.
¿Necesito saber programar?
No. Solo debes copiar el código y ejecutarlo.
¿Puedo modificar los datos que extrae?
Sí, la macro es adaptable según tus necesidades.
¿Funciona con múltiples facturas?
Sí, puedes seleccionar varios XML al mismo tiempo.
Conclusión
Automatizar la extracción de datos desde facturas XML no solo ahorra tiempo — también mejora la precisión y la productividad.
Esta macro es una solución práctica para cualquier profesional que trabaje con CFDI y quiera optimizar su flujo de trabajo.
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Comentarios
Publicar un comentario
Dejanos tus dudas y comentarios