Página 1 de 1

Excluir linha com base em formatação Condicional !

Enviado: Seg Jun 10, 2019 4:18 pm
por AndersonDorneles
Olá Boa tarde,

Trabalho com Auditoria Fiscal e estou criando um complemento no excel para facilitar os meus cruzamentos de informações. Eu estou pegando dados da colula A e comparando com a Coluna B, usei formatação condicional para pintar de vermelho os dados semelhantes, e sobra em branco os dados exclusivos. A macro é esta e esta funcionando para o que eu preciso:

Código: Selecionar todos

Sub Cruzamento_Dados_Alternativo()
    Columns("A:B").Select
    Selection.FormatConditions.AddUniqueValues
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).DupeUnique = xlDuplicate
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ColorIndex = 22
        '.Color = 65535
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Range("A1").Select
    ActiveWindow.SmallScroll Down:=-6
End Sub
Eu tinha uma outra macro que fazia essa comparação usando Arrays (Sem a formatação condicional), mais abandonei pq fui testar com 30 mil elementos e ela consumiu muito processamento (depois posto pra ver se a gente pode melhorar ela pra que processe mais rapidamente). Mas vamos lá, depois que a macro marca pra mim (em cores) as células diferentes (e iguais) eu preciso excluir as linhas com células iguais, permanecendo somente a linha com a informação (dado) diferente.

Na macro que usava Arrays eu usava esta macro abaixo pra excluir as linhas que eu queria, mas como agora uso formatação condicional a macro não funciona mais.

Código: Selecionar todos

Sub DeletaLinhas()
'UpdateBY Extendoffice 20161116
   Dim xRg As Range, rgDel As Range
   'MsgBox "Fora !"
    For Each xRg In ActiveSheet.Range("B:B")
    'MsgBox "Dentro !"
        If xRg.Interior.Color = 65535 Then
            'MsgBox "Cor OK !"
            If rgDel Is Nothing Then
                Set rgDel = xRg
            Else
                 'MsgBox "Cor NÃO OK !"
                Set rgDel = Union(rgDel, xRg)
            End If
        End If
    Next xRg
    If Not rgDel Is Nothing Then rgDel.EntireRow.Delete
End Sub
... ele considera todas as células com a mesma cor. Se alguém puder me ajudar !

Estou quase finalizando o meu pequeno software para levantamento fiscal, e em uma das etapas eu importo as NFE´s em XML para o Excel, porem estou com uma pequena dificuldade num array das NFE´s. Mais a frente posto esse problema tb.

Desde já agradeço!!

Att,

Anderson S. Dorneles