Página 1 de 1

Comparar valor de 2 tabelas do Excel (VBA)

Enviado: 15 Out 2018 às 19:49
por kleinowski
Boa Noite!
Tenho 2 planilhas com Excel, 1 Planilha sempre muda os valores, e a outra é a Base, os dados dela são sempre iguais.
Eu preciso que a Planilha 1 confronte os valores dela com a Planilha Base, e se tiver alguma coisa diferente da planilha base que a célula ficasse com uma cor diferente.

Coloquei duas planilhas em anexo, os Dados nunca vão alterar, porem a outra planilha vai mudar.
Todos os itens a serem comparados ficam um abaixo do outro, teria alguma forma de a hora que tiver uma linha em branco ele parar?
Existe alguma maneira de fazer essa comparação?

Re: Comparar valor de 2 tabelas do Excel (VBA)

Enviado: 17 Out 2018 às 21:39
por kleinowski
Se for o caso, posso importar a Planilha dos dados pelo VBA, fazer a comparação e depois remover ela.
Existe alguma forma de fazer essas comparações??

Re: Comparar valor de 2 tabelas do Excel (VBA)

Enviado: 17 Out 2018 às 22:09
por osvaldomp
kleinowski escreveu:... e se tiver alguma coisa diferente da planilha base
Explique com exatidão o que você quer dizer com "alguma coisa diferente".

Re: Comparar valor de 2 tabelas do Excel (VBA)

Enviado: 19 Out 2018 às 00:18
por kleinowski
Eu tenho a Planilha Base, essa os valores nunca vão mudar.
Porem a outra Planilha é gerada sempre nova, então os valores delas vão mudar.
No arquivo de exemplo que coloquei, a coluna A tenho duas vezes o valor 10, porem na coluna B um valor é H e o outro é J, e na coluna C um valor é 12 e o outro é 0.
Se comparar com a Planilha Dados o Valor 10 deveria ser 10-J-100. Então estes valores da Planilha Busca deveriam ficar com uma cor no fundo da Celula.

Só que tem um problema: Na Planilha Dados o valor está crescente, 1-2-3-4....., já na planilha Busca estes valores não vão estar em ordem, e pode ser que por exemplo os números 4,6,8 nem existam na planilha.

Re: Comparar valor de 2 tabelas do Excel (VBA)

Enviado: 19 Out 2018 às 07:52
por osvaldomp
kleinowski escreveu:Eu tenho a Planilha Base, ...
Não existe Planilha Base. Você postou o arquivo Busca com 3 planilhas, Plan1, Plan2 e Plan3 e postou o arquivo Dados com 3 planilhas, Plan1, Plan2 e Plan3.

No arquivo de exemplo que coloquei, a coluna A tenho duas vezes o valor 10, porem na coluna B um valor é H e o outro é J, e na coluna C um valor é 12 e o outro é 0.
Se comparar com a Planilha Dados o Valor 10 deveria ser 10-J-100. Então estes valores da Planilha Busca deveriam ficar com uma cor no fundo da Celula.
O critério para pintar ainda não está claro. Você quer comparar as colunas A e B entre as duas planilhas, se forem iguais então pinta. É isso?
Além do exemplo acima, quais as outras linhas que você quer pintar?
Facilitaria a solução se você colocar as duas planilhas em um só arquivo Excel. É viável ?

Comparar valor de 2 tabelas do Excel (VBA)

Enviado: 19 Out 2018 às 13:13
por kleinowski
Sim, so pensava nas duas planilhas pois tenho elas em arquivos separados.
Da para colocar junto no código para que ele importe essa planilha?

Re: Comparar valor de 2 tabelas do Excel (VBA)

Enviado: 20 Out 2018 às 21:51
por osvaldomp
osvaldomp escreveu:
kleinowski escreveu: No arquivo de exemplo que coloquei, a coluna A tenho duas vezes o valor 10, porem na coluna B um valor é H e o outro é J, e na coluna C um valor é 12 e o outro é 0.
Se comparar com a Planilha Dados o Valor 10 deveria ser 10-J-100. Então estes valores da Planilha Busca deveriam ficar com uma cor no fundo da Celula.
O critério para pintar ainda não está claro. Você quer comparar as colunas A e B entre as duas planilhas, se forem iguais então pinta. É isso?
Além do exemplo acima, quais as outras linhas que você quer pintar?
Você não respondeu e sem essas informações eu não consigo te ajudar :(

Comparar valor de 2 tabelas do Excel (VBA)

Enviado: 23 Out 2018 às 13:12
por kleinowski
Eu preciso que ele pinte as celulas que forem diferentes. Por exemplo
Na Planilha "Base" Eu tenho
A B C (Colunas)
1 2 3

Se na outra ficha os valores forem
A B C
1 3 5
Toda a linha deverá ser pintar, pois ela está diferente do planilha "Base" que é o arquivo padrão.

Anexei as duas fichas .
Lista Ferramentas é o padrão
Ficha sempre gerado uma nova

Eu preciso que seja comparado os seguintes dados:
Planilha Ficha
Colunas D, E, L a partir da linha 16 (até achar uma linha em branco)
Com os valores da Planilha Lista Ferramentas.
Se tiver algum valor diferente da Lista Ferramentas a célula deverá ser pintada para destacar que aquele valor está diferente.

Comparar valor de 2 tabelas do Excel (VBA)

Enviado: 28 Out 2018 às 21:19
por kleinowski
É possivel fazer isso?

Re: Comparar valor de 2 tabelas do Excel (VBA)

Enviado: 28 Out 2018 às 21:57
por osvaldomp
Certamente que sim, porém seria conveniente você facilitar o trabalho de quem tentar te ajudar.
Assim, disponibilize um único arquivo com as duas planilhas e pinte as células que você deseja que sejam pintadas.

Re: Comparar valor de 2 tabelas do Excel (VBA)

Enviado: 29 Out 2018 às 13:21
por kleinowski
Juntei as 2 Planilhas em uma só
Deixei pintado as celulas que são diferentes,
Eu preciso que a macro faça isso sozinha.
Se o nº da ferramenta for 9 a descrição dela tem que ser igual ao numero 9 do base, se não for tem que pintar a celula.

Re: Comparar valor de 2 tabelas do Excel (VBA)

Enviado: 29 Out 2018 às 18:39
por osvaldomp
Código: Selecionar todos
Sub PintaDivergentes()
 Dim c As Range, k As Long
  With Sheets("Ficha")
   .Range(.[D16], .[D16].End(4)).Resize(, 2).Interior.ColorIndex = xlNone
   .Range(.[L16], .[L16].End(4)).Interior.ColorIndex = xlNone
   For Each c In .Range(.[D16], .[D16].End(4))
    k = Sheets("Base").Range("A2", Sheets("Base").[A2].End(4)).Find(c.Value, lookat:=xlWhole).Row
    If c.Offset(, 1).Value <> Sheets("Base").Cells(k, 2) Or c.Offset(, 8).Value <> Sheets("Base").Cells(k, 3) Then
     c.Resize(, 2).Interior.ColorIndex = 6: c.Offset(, 8).Interior.ColorIndex = 6
    End If
   Next c
  End With
End Sub

Comparar valor de 2 tabelas do Excel (VBA)

Enviado: 29 Out 2018 às 20:01
por kleinowski
:D :D :D
Muito obrigado! Era isso que eu precisava
Vlw.