Notifications
Clear all

Macro de comparar e mostrar iguais

3 Posts
2 Usuários
0 Reactions
961 Visualizações
(@dimorais)
Posts: 431
Reputable Member
Topic starter
 

Bom dia
Essa macro foi pescada na net e adaptada mas não funfou legal. O objetivo é comparar uma tabela com outra e marcar ou excluir valores de uma linha se houver outra linha na outra tabela igual. :D

 
Postado : 29/12/2015 2:49 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite,

O objetivo da macro, escrito na planilha, é o seguinte:

Se a sequencia em G2:K3970 constar em A2:E15505, aparece em F2:F3969 "Sequencia Repetida" ou seja , essa informação se refere a A2:E15505

No entanto, no intervalo "A2:E15505" está o universo das combinações de 20, 5 a 5, portanto TODAS as sequências do intervalo "G2:K3970" estarão lá.
Não entendi para que serviria tal comparação.
Para mim faz sentido comparar se uma sequência do intervalo "G2:K3970" consta de "A2:E15505".
O seguinte código, utilizando de fórmulas temporárias, faz isso:

Sub SequenciaRepetida()
    Dim ultLinA  As Long
    Dim ultLinG  As Long
    
    ultLinA = Cells(Rows.Count, "A").End(xlUp).Row
    ultLinG = Cells(Rows.Count, "G").End(xlUp).Row
    
    Application.Calculation = xlCalculationManual
    Range("AI2:AI" & ultLinA).FormulaLocal = "=CONCATENAR(A2;""x"";B2;""x"";C2;""x"";D2;""x"";E2)"
    Range("AJ2:AJ" & ultLinG).FormulaLocal = "=CONCATENAR(G2;""x"";H2;""x"";I2;""x"";J2;""x"";K2)"
    Range("F2:F" & ultLinA).FormulaLocal = "=SE(CONT.SE(AJ$2:AJ$" & ultLinG & ";AI2)>0;""Sequência Repetida"";"""")"
    Range("F2:F" & ultLinA).Copy
    [F2].PasteSpecial xlPasteValues
    [AI:AJ].Columns.ClearContents
    Application.Calculation = xlCalculationAutomatic
End Sub

Veja se entendi corretamente e se o código atende.

Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 06/01/2016 8:33 pm
(@dimorais)
Posts: 431
Reputable Member
Topic starter
 

Bom dia
JValq, desculpe a demora em responder. :oops: :oops: :oops: "Não entendi para que serviria tal comparação". A comparação é para eliminar da lista sequencias já ocorridas, ficando apenas aquelas inéditas. Com relação a macro, agradeço imensamente a solução. :D :D :D

 
Postado : 09/01/2016 8:07 am