Home Excel - Dicas Microsoft Excel VBA Excel VBA - Compara Excel planilha vba compara duas planilhas emite relatorio

Excel planilha vba compara duas planilhas emite relatorio

E-mail Imprimir PDF

Saberexcel - site das macros

Este exemplo de planilha contém macro do Aplicativo Microsoft Excel VBA(Visual Basic Application), que compara dados entre duas folhas de planilhas,
aqui inserí somente uma coluna em cada folha de planilha. Ao comparar os dados, o macro abrirá uma nova planilha com a relação dos ítens diferentes.

' ESTE EXEMPLO DE PLANILHA FAZ PARTE DO MÓDULO COMO FAZER PROGRAMAÇÃO MS EXCEL VBA_IV


Sub Comparar_planilha()
On Error GoTo Err:
'caso execute o macro em outro livro ativo
Compara_Planilhas Sheets("Plan1"), Sheets("Plan2")
Exit Sub
Err: MsgBox "Selecione Planilha Compara!", vbInformation, "Saberexcel"
End Sub

Sub Compara_Planilhas(Wks1 As Worksheet, Wks2 As Worksheet)

Dim vLin As Long, vCol As Integer
Dim vContaLinWk1 As Long, vContaLinWk2 As Long, vContaColWk1 As Integer, vContaColWk2 As Integer
Dim vMaxLin As Long, vMaxCol As Integer, vDados1 As String, vDados2 As String
Dim vRelatorioWB As Workbook, vContaDiferenca As Long

Application.ScreenUpdating = False
Application.StatusBar = "gerando relatório............"

Set vRelatorioWB = Workbooks.Add
Application.DisplayAlerts = False

While Worksheets.Count > 1
Worksheets(2).Delete
Wend

Application.DisplayAlerts = True

With Wks1.UsedRange
vContaLinWk1 = .Rows.Count
vContaColWk1 = .Columns.Count
End With

With Wks2.UsedRange
vContaLinWk2 = .Rows.Count
vContaColWk2 = .Columns.Count
End With

vMaxLin = vContaLinWk1
vMaxCol = vContaColWk1

If vMaxLin < vContaLinWk2 Then vMaxLin = vContaLinWk2
If vMaxCol < vContaColWk2 Then vMaxCol = vContaColWk2
vContaDiferenca = 0

For vCol = 1 To vMaxCol
Application.StatusBar = "Comparando células " & Format(vCol / vMaxCol, "0 %") & "..."

For vLin = 1 To vMaxLin
vDados1 = ""
vDados2 = ""

On Error Resume Next
vDados1 = Wks1.Cells(vLin, vCol).FormulaLocal
vDados2 = Wks2.Cells(vLin, vCol).FormulaLocal

On Error GoTo 0
If vDados1 <> vDados2 Then
vContaDiferenca = vContaDiferenca + 1
Cells(vLin, vCol).Formula = "'" & vDados1 & " <> " & vDados2
Cells(vLin, vCol + 1).Value = " diferentes"
End If

Next vLin
Next vCol

Application.StatusBar = "Formatando Relatório..."
ActiveSheet.Name = "Relatorio dados diferentes"
ActiveWindow.DisplayGridlines = False 'retirando a grade
Columns("A:D").AutoFit

'formatando a planilha que vai receber os dados.
With Range(Cells(1, 1), Cells(vMaxLin, vMaxCol))
.Interior.ColorIndex = 19
.Font.Name = "Verdana"
.Font.Size = 8
With .Borders
.LineStyle = xlContinuous
.Weight = xlHairline
End With
End With

Columns("A:IV").ColumnWidth = 15
vRelatorioWB.Saved = True

If vContaDiferenca = 0 Then
vRelatorioWB.Close False
End If

Set vRelatorioWB = Nothing

Application.StatusBar = False
Application.ScreenUpdating = True

MsgBox "Detectado(s) ...: [ " & vContaDiferenca & " ] Itens diferentes! ", vbInformation, _
"Dados comparados.: [ " & Wks1.Name & " ] com [ " & Wks2.Name & " ]"
End Sub


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




Baixe o exemplo de planilha contendo macro acima
Excel planilha vba compara planilhas e emite relatorio diferenca (33.67 KB) 

Última atualização em Qua, 10 de Agosto de 2011 08:22  

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

Pesquisa Google SaberExcel

Publicidade Google

Publicidade

Rastreamento Correios

Digite o número do SEDEX conforme o exemplo:
Correios do Brasil

Assinatura SaberExcel

Google Associados

Depoimentos

Visitantes SaberExcel

Excel VBA Estudos®
mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoje295
mod_vvisit_counterOntem5154
mod_vvisit_counterEsta Semana24955
mod_vvisit_counterSemana passada36487
mod_vvisit_counterEsse mês38684
mod_vvisit_counterMês passado153723
mod_vvisit_counterTodos10461513
Aprenda MS Excel VBA

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