Home Excel - Dicas Microsoft Excel VBA Excel VBA - Compara Excel planilha vba comparar dados duas planilhas

Excel planilha vba comparar dados duas planilhas

E-mail Imprimir PDF


Saberexcel - o site de quem precisa aprender macros microsoft Excel

E
sses dois macros fazerm a comparação entre duas folhas de Planilhas e retorna o resultado dos dados para uma terceira folha de planilha que aqui nomeamos como Resultado: resultado Nomes comuns(Iguais nas duas tabelas (duas Planilhas) e NOMES NÃO COMUNS ( Nomes diferentes nas duas Planilhas) . Caso queira baixar a planilha exemplo(Link fim da página) --- cadastre no site: Home > Registre-se > 

'Esse macro retorna os nomes NAO COMUNS - entre as duas listas nas duas Folhas de planihas (Compara1 e Comparar2)

Sub sbs_comparando_planilhas()
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
' testa se o vNome é diferente
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Dim b As Long
Dim t As Long
Dim vQuantidade1 As Long
Dim vQuantidade2 As Long
Dim vEncontrado As Single
Dim LinhaPlanRel As Long
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
' para facilitar as comparações, dois nomes tabelas são criadas, isto é, melhorar a performance
Dim vNome1(1000) As String   
' ***** revisar o número conforme necessário
Dim vNome2(1000) As String  
  ' ***** sempre para o mesmo número
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'para preencher a primeira tabela::
Sheets("Compara1").Select     'selecionando a planilha para ativá-la

For b = 1 To Saber3.Range("A65000").Row
    vNome1(b) = Cells(b, 1)
    If Cells(b + 1, 1) = "" Then Exit For  
'se encontrar celula vazia sai do loop
Next b

vQuantidade1 = b
'para preencher a segunda tabela:
Sheets("Compara2").Select     'selecionando para ativar a planilha

For t = 1 To Saber2.Range("A65000").Row
    vNome2(t) = Cells(t, 1)
    If Cells(t + 1, 1) = "" Then Exit For  
'se encontrar uma celula vazia sai do loop for
Next t
vQuantidade2 = t

'Comparando as planilhas e extrair dados para planilha Relatório

Sheets("Relatorio").Select     'Selecinando a planilha relatório,
[C2:C6000].ClearContents      
'Limpar a coluna(A)
LinhaPlanRel = 1
Cells(1, 3) = "NAO COMUNS"

For b = 1 To vQuantidade1
    vEncontrado = 0
   
    For t = 1 To vQuantidade2
        If vNome1(b) = vNome2(t) Then
            vEncontrado = 1
        End If
    Next t
   
    If vEncontrado = 0 Then    'Nome vEncontrado
        Cells(LinhaPlanRel + 1, 3) = vNome1(b)
        LinhaPlanRel = LinhaPlanRel + 1
    End If
   
Next b

End Sub

'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Esse macro retorna os nomes EM COMUM - entre as duas listas nas duas Folhas de planihas (Compara1 e Comprar2)
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 


Sub sbx_comparando_planilhas()
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
' testa se o nome é igual
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Dim b As Long
Dim t As Long
Dim vQuantidade1 As Long
Dim vQuantidade2 As Long
Dim LinPlan3 As Long
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
' para facilitar as comparações, dois nomes tabelas são criadas, isto é, melhorar a performance
Dim vNome1(1000) As String    ' ***** revisar o número conforme necessário
Dim vNome2(1000) As String    ' ***** sempre para o mesmo número
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'para preencher a primeira tabela:
Sheets("Compara1").Select               'selecionando para ativar a planilha

For b = 1 To 65536
    vNome1(b) = Cells(b, 1)
    If Cells(b + 1, 1) = "" Then Exit For   'ao encontrar um célula em branco sai do loop
Next b
vQuantidade1 = b

'para preencher a segunda tabela:
Sheets("Compara2").Select                  'selecionando para ativar a planilha
For t = 1 To 65536                              
    vNome2(t) = Cells(t, 1)
    If Cells(t + 1, 1) = "" Then Exit For    'ao encontrar um célula em branco sai do loop
Next t
vQuantidade2 = t
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
' comparação
Sheets("Relatorio").Select              'selecionando a terceira planilha para receber que fique ativa receber dados
Columns("A:A").ClearContents         ' Limpando a area para receber os novos dadosa
LinPlan3 = 1
Cells(1, 3) = "DADOS EM COMUM"

For b = 1 To vQuantidade1
    For t = 1 To vQuantidade2
        If vNome1(b) = vNome2(t) Then
            Cells(LinPlan3 + 1, 3) = vNome1(b)
            LinPlan3 = LinPlan3 + 1
        End If
    Next t
Next b

End Sub

'com a inteção didática para aprendermos sobre intrução Loops for next
Sub sbx_limpar_teste()
Dim i As Long

For i = 2 To Saber4.[C65000].End(xlUp).Row
    Cells(i, "C").ClearContents
Next i

End Sub

'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sub sbx_selecionar_rel()
Saber4.Select
End Sub
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Escola Saberexcel VBA Estudos® - Treinamentos com Macros, Fórmulas e Funções.


'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Para baixar esse exemplo de planilha, deverá fazer o login na área livre registrados, é bem simples
                                                      Acesso Livre - Registrados (REGISTRE-SE!) 
   Baixe o exemplo de planilha contendo os macros acima:
Excel planilha vba comparar dados duas planilhas (91.97 KB)

Última atualização em Sex, 28 de Outubro de 2011 19:12  

Comentários   

 
delmar
# delmar 08-04-2013 10:26
não está pesquisando com volume maior que a planilha!
Responder | Responder com citação | Citar
 

Adicionar comentário

"Jamais considere seus estudos como uma obrigação, mas como uma oportunidade invejável para aprender a conhecer a influência libertadora da beleza do reino do espírito, para seu próprio prazer pessoal e para proveito da comunidade." Albert Einstein


Código de segurança
Atualizar

PROMOÇÃO DIDÁTICOS SABEREXCEL



Adquira já o Acesso Imediato
à Area de Membros

Compra Grantida --- Entrega Imediata

Aprenda Excel VBA com Simplicidade de 
códigos e Eficácia, Escrevendo Menos e
Fazendo Mais.

'-------------------------------------'
Entrega Imediata:
+  500 Video Aulas MS Excel VBA
+  35.000 Planilhas Excel e VBA
+  Coleção 25.000 Macros MS Excel VBA
+  141 Planilhas Instruções Loops
+  341 Planilhas WorksheetFunctions(VBA)
+    04 Módulos Como Fazer Excel VBA
+  Curso Completo MS Excel VBA
+  Planilhas Inteligentes


Pesquisa Google SaberExcel

Publicidade Google

<script type="text/javascript"><!--

google_ad_client = "ca-pub-2317234650173689";

/* retangulo 336 x 280 */

google_ad_slot = "0315083363";

google_ad_width = 336;

google_ad_height = 280;

//-->

</script>

<script type="text/javascript"

src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

</script>

Publicidade

RSFirewallProtected


Google Associados

Depoimentos

Adicione Saberexcel Favoritos

 
 

Aprenda tudo sobre o Aplicativo Microsoft Excel VBA

Aprenda tudo sobre o Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Saberexcel,


   Sobre as WorksheetFunctions Funções de Planilhas que retornam valores do VBA