Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Excluir linha com base em formatação Condicional !

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
AndersonDorneles
Colaborador
Colaborador
Mensagens: 21
Registrado em: Ter Mai 03, 2011 7:58 am

Excluir linha com base em formatação Condicional !

Mensagem 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


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder