Notifications
Clear all

[Resolvido] Comparar valores de duas colunas de abas distintas e extrair o valor único da coluna 1 para a coluna 2

4 Posts
2 Usuários
0 Reactions
759 Visualizações
(@andretp15)
Posts: 3
New Member
Topic starter
 

Olá gente tudo bem? Estou quebrando a cabeça para resolver isso aqui:

Tenho duas colunas em abas distintas de um planilha e gostaria de comparar os valores da aba 1 com a aba 2 e extrair apenas os valores que estão presentes na aba 1 para coloca-los na aba 2  ou seja os valores únicos, fiz esse código em vba mas ele está extraindo todos os valores ao invés dos valores únicos. 

Sub pegar_valor()

Dim intervalo1, intervalo2 As Variant
Dim x, y As Variant
Dim work1, work2 As Worksheet

Set work1 = Worksheets("Planilha1")
Set work2 = Worksheets("Planilha2")

Set intervalo1 = work1.Range("A1:A5")
Set intervalo2 = work2.Range("A1:A4")

For Each x In intervalo1
    For Each y In intervalo2
        If x <> y Then
        x.Offset(0, 1) = x
        Else
        'não fazer nada
        End If
    Next y
Next x

End Sub

Em anexo coloco um arquivo de exemplo onde tentei rodar esse código

 
Postado : 26/07/2022 12:07 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Olá, @andretp15, bem vindo de volta.

Não entendi exatamente o que vc deseja... Seu código está colocando todos os valores da Aba 1 ( = x) na coluna B da aba 1 (e não na aba 2)...

Postado por: @andretp15

...para coloca-los na aba 2...

... isso porque, logicamente, pq a cada loop ele vai encontrar pelo menos um valor que não seja igual a si próprio, já que ele circula por todas as células.

O elemento único que está em 1 mas não está em 2 é "Ana". Baseado nisso, como deveria ficar a coluna B da sua planilha 2 (ou 1?).

  • Com todos os comuns mais a Ana? (todos os que estão em 1 e todos os que estão em 2)
  • Só com Ana? (todos os que estão em 1 mas não estão em 2)
  • Outra forma?

 
Postado : 26/07/2022 2:44 pm
(@andretp15)
Posts: 3
New Member
Topic starter
 

Olá Edson, acabei me expressando errado, na verdade o que eu quero é extrair o elemento único que esta em 1 mas não em 2 que seria a "Ana" mesmo, ai eu gostaria de pegar esse valor único e colocar na coluna A da planilha 2

então resumidamente o que eu quero extrair são todos que estão em 1 mas não estão em 2, ai gostaria de colocar esse valor extraido na coluna "A", da planilha 2. Obrigado pela atenção 🙂 

Este post foi modificado 2 anos atrás por andretp15
 
Postado : 26/07/2022 3:14 pm
(@andretp15)
Posts: 3
New Member
Topic starter
 

Olá @edsonbr, eu dei uma pesquisada na documentação e vi que era melhor usar o comando count if para resolver essa minha questão conforme segue no código abaixo:

Sub pegar_valor()
Dim work1, work2 As Worksheet
Dim intervalo1, intervalo2 As Range
Dim cell_1, cell_2 As Range
Dim lastrow As Long


Set work1 = Worksheets("Planilha1")
Set work2 = Worksheets("Planilha2")
lastrow = Cells(Rows.Count, "A").End(xlUp).Row

Set intervalo1 = work1.Range("A1:A5")
Set intervalo2 = work2.Range("A1:A4")

For Each cell_1 In intervalo1
    For Each cell_2 In intervalo2
        If WorksheetFunction.CountIf(intervalo2, cell_2) = 1 Then
            work2.Cells(lastrow + 1, 1) = cell_1.Value
        End If
    Next
Next


End Sub



 
Postado : 26/07/2022 5:32 pm