' === Pratica Obrigatoria 1 (ATIVO) ===
Option Explicit

Sub ExecutarAuditoriaGeral()
    Dim ws As Worksheet
    Dim lngUltimaLinha As Long
    Dim i As Long
    Dim curValor As Currency
    Dim lngDias As Long
    Dim curValorFinal As Currency
    Dim curJurosAcumulados As Currency
    Dim strStatus As String
    Dim lngExcluidos As Long
    
    Set ws = ThisWorkbook.Worksheets(1)
    
    Application.ScreenUpdating = False
    
    ' ETAPA 1: Cálculo Financeiro e Juros
    lngUltimaLinha = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    curJurosAcumulados = 0
    
    For i = 2 To lngUltimaLinha
        curValor = CCur(ws.Cells(i, 2).Value)
        lngDias = CLng(ws.Cells(i, 3).Value)
        
        If lngDias > 0 Then
            curValorFinal = curValor * 1.02 + (curValor * (lngDias * 0.001))
            curJurosAcumulados = curJurosAcumulados + (curValorFinal - curValor)
        Else
            curValorFinal = curValor
        End If
        
        ws.Cells(i, 4).Value = curValorFinal
        ws.Cells(i, 4).NumberFormat = "R$ #,##0.00"
    Next i
    
    ' ETAPA 2: Varredura Reversa para Exclusão de Linhas
    lngExcluidos = 0
    For i = lngUltimaLinha To 2 Step -1
        strStatus = UCase(Trim(ws.Cells(i, 5).Value))
        
        If strStatus = "CANCELADO" Then
            ws.Rows(i).EntireRow.Delete
            lngExcluidos = lngExcluidos + 1
        End If
    Next i
    
    ' ETAPA 3: Resumo Executivo (Desafio de Fixação)
    ws.Range("G1").Value = "Total Juros Apurados:"
    ws.Range("H1").Value = curJurosAcumulados
    ws.Range("G1:H1").Font.Bold = True
    ws.Range("H1").NumberFormat = "R$ #,##0.00"
    ws.Columns("A:H").AutoFit
    
    Application.ScreenUpdating = True
    
    MsgBox "Auditoria Completa Homologada!" & vbCrLf & vbCrLf & _
           "• Cancelamentos Excluídos: " & lngExcluidos & vbCrLf & _
           "• Juros Recuperados: " & FormatCurrency(curJurosAcumulados), _
           vbInformation, "FastLog Auditoria"
End Sub

