segunda-feira, 8 de setembro de 2025

🔮 Automação em VBA: Radar de Dados Suspeitos em Planilhas Empresariais

 🧐 O Problema

No dia a dia, planilhas empresariais recebem dados de várias fontes:

  • Funcionários digitando manualmente 🖊️

  • Importações de sistemas externos 🔄

  • Colagens de relatórios 📥

Isso abre brechas para erros ou fraudes, como:

  • Valores absurdamente altos ou baixos (ex.: um produto de R$ 10 lançado por R$ 10.000).

  • CNPJs/CPFs inválidos.

  • Datas inconsistentes (ex.: vencimento anterior à emissão).

  • Textos duplicados que não deveriam existir.

Muitas vezes só se percebe o problema depois do estrago. 😬


💡 A Solução Inovadora

Um radar inteligente de dados suspeitos, rodando em VBA:

  • Analisa os valores digitados em tempo real.

  • Aplica regras automáticas de detecção (intervalos válidos, formatos corretos, duplicidades, lógica de datas).

  • Destaca imediatamente a célula problemática.

  • Gera um relatório de inconsistências em aba separada para auditoria.


🚀 Funcionamento

  1. O usuário digita ou importa dados na planilha.

  2. O VBA verifica instantaneamente:

    • Se o valor está dentro do esperado.

    • Se não há duplicidade crítica.

    • Se o formato está correto.

  3. Caso encontre algo suspeito:

    • Destaca a célula em vermelho.

    • Registra no log de inconsistências.

    • (Opcional) envia alerta ao responsável.


🧑‍💻 Código VBA (exemplo simplificado)

Private Sub Worksheet_Change(ByVal Target As Range) Dim cel As Range, wsLog As Worksheet Set wsLog = ThisWorkbook.Sheets("LOG_ERROS") Application.EnableEvents = False For Each cel In Target If IsNumeric(cel.Value) Then ' Exemplo: valores entre 1 e 1000 são válidos If cel.Value < 1 Or cel.Value > 1000 Then cel.Interior.Color = vbRed wsLog.Cells(wsLog.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = _ "Valor suspeito em " & cel.Address & ": " & cel.Value & " - " & Now End If ElseIf IsDate(cel.Value) Then ' Exemplo: data de vencimento não pode ser menor que emissão (coluna B vs C) If cel.Column = 3 Then If cel.Value < Cells(cel.Row, 2).Value Then cel.Interior.Color = vbYellow wsLog.Cells(wsLog.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = _ "Data inconsistente em " & cel.Address & ": " & cel.Value & " - " & Now End If End If End If Next cel Application.EnableEvents = True End Sub

📊 Onde usar no dia a dia empresarial?

✅ Controle de lançamentos financeiros (evita erros em valores)
✅ Conferência de notas fiscais (datas e CNPJs válidos)
✅ Monitoramento de pedidos de compra (quantidades suspeitas)
✅ Auditoria de dados de cadastro (duplicidades e formatos inválidos)


🔍 Por que é útil?

Muita gente usa validação simples do Excel, mas esse “radar” é ativo e inteligente:

  • Não só bloqueia, mas investiga.

  • Cria um log de inconsistências para análise posterior.

  • Funciona como um sistema antifraude e anti-erros direto no Excel.

É como colocar um fiscal automático dentro da sua planilha. 🕵️‍♂️

Nenhum comentário:

Postar um comentário