Empieza con estas validaciones básicas y después agrega más reglas según las necesidades de tu empresa. Si no te sientes cómodo editando código, puedes contratar a un experto en Excel para que afine la macro por ti.
¿Te gustaría que profundice en alguna validación específica? Déjame tu pregunta en los comentarios. macro para validar facturas
' Recorrer cada factura desde fila 2 For i = 2 To ultimaFila numFactura = Trim(ws.Cells(i, 1).Value) rfc = Trim(ws.Cells(i, 2).Value) fecha = ws.Cells(i, 3).Value monto = ws.Cells(i, 4).Value uuid = Trim(ws.Cells(i, 5).Value) errores = "" ' 1. Validar número de factura no duplicado If Application.WorksheetFunction.CountIf(ws.Range("A:A"), numFactura) > 1 Then errores = errores & "Número duplicado. " End If ' 2. Validar RFC (12 o 13 caracteres alfanuméricos) If Not rfc Like "[A-Z,Ñ,&]3,4[0-9]6[A-Z,0-9,Ñ]3" Then errores = errores & "RFC inválido. " End If ' 3. Validar fecha If Not IsDate(fecha) Then errores = errores & "Fecha no válida. " ElseIf fecha > Date Then errores = errores & "Fecha futura. " End If ' 4. Validar monto If Not IsNumeric(monto) Then errores = errores & "Monto no numérico. " ElseIf monto <= 0 Then errores = errores & "Monto debe ser mayor a 0. " End If ' 5. Validar UUID (formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) If Len(uuid) > 0 Then If Not uuid Like "????????-????-????-????-????????????" Then errores = errores & "UUID con formato incorrecto. " End If End If ' Escribir resultado If errores = "" Then ws.Cells(i, 6).Value = "Válida" Else ws.Cells(i, 6).Value = Trim(errores) End If Next i Empieza con estas validaciones básicas y después agrega
Si trabajas en contabilidad, administración o compras, sabes que validar facturas manualmente es un proceso tedioso y propenso a errores. ¿El número de factura está repetido? ¿El RFC es correcto? ¿La fecha es válida? ¿El monto tiene el formato adecuado? Déjame tu pregunta en los comentarios
Sub ValidarFacturas() Dim ws As Worksheet Dim ultimaFila As Long Dim i As Long Dim numFactura As String Dim rfc As String Dim fecha As Variant Dim monto As Variant Dim uuid As String Dim errores As String Set ws = ThisWorkbook.Sheets("Facturas") ultimaFila = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' Agregar encabezado de validación en columna F ws.Cells(1, 6).Value = "Validación"