Consolidação de dados em Excel VBA – União de dados em Excel VBA

Consolidação de dados em Excel VBA – União de dados em Excel VBA

Objetivo: Esta planilha realiza a consolidação de dados de várias planilhas a partir de uma configuração inicial. Muito útil para unir dados de filiais.

É muito comum a necessidade de unir dados de várias planilhas, principalmente quando trabalhamos em empresas com filiais.

Estas informações normalmente tem que ser consolidadas manualmente frequentemente o que gera um bom trabalho.

Nesta planilha automatizada com o uso de Excel VBA você tem um modo de como fazer com que estes dados sejam unidos automaticamente.

Como configurar

Para configurar a planilha altere os dados da planilha:

Caminho: Digite o caminho completo do arquivo, incluindo a extensão

Planilha: Digite o nome da planilha se for apenas uma planilha do arquivo, se forem todas as planilhas do arquivo que devam ser unidas, não digite nada neste campo

Coluna final: Digite a coluna até qual a planilha Excel deverá realizar a união dos dados.

Altere também na planilha Consolidado o nome dos campos conforme as planilhas que você irá unir.

Assim que forem realizadas todas as alterações necessárias uma única vez, basta você clicar no botão que a planilha irá realizar a consolidação de todos os dados no Excel.

Código VBA Excel

Abaixo o código VBA utilizado nesta planilha.

Sub lsConsolidarPlanilhas()
    Dim lWorkbook           As Workbooks
    Dim lWorksheet          As Worksheet
    Dim lUltimaLinhaAtiva   As Long
    Dim lControle           As Long
    Dim lUltimaLinhaAtiva2  As Long
    Dim lUltimaLinhaAtiva3  As Long
    
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    
    Worksheets("Consolidado").Select
    Worksheets("Consolidado").Range("A2:G1000000").Select
    Selection.ClearContents
    
    
    lUltimaLinhaAtiva = Worksheets("Configuração").Cells(Worksheets("Configuração").Rows.Count, 1).End(xlUp).Row
    lControle = 2
    
    While lControle <= lUltimaLinhaAtiva
        Workbooks.Open Filename:=Worksheets("Configuração").Range("A" & lControle).Value
            
        Set lworkbooks = ActiveWorkbook
            
        For Each lWorksheet In lworkbooks.Worksheets
            If (lWorksheet.Name = Workbooks("Consolidado.xlsm").Worksheets("Configuração").Range("B" & lControle).Value Or _
                Workbooks("Consolidado.xlsm").Worksheets("Configuração").Range("B" & lControle).Value = "") Then
                
                Workbooks(lworkbooks.Name).Worksheets(lWorksheet.Name).Activate
                lUltimaLinhaAtiva2 = Worksheets(lWorksheet.Name).Cells(Worksheets(lWorksheet.Name).Rows.Count, 1).End(xlUp).Row
                lWorksheet.Select
                lWorksheet.Range("A2:" & Workbooks("Consolidado.xlsm").Worksheets("Configuração").Range("C" & lControle).Value & lUltimaLinhaAtiva2).Select
                Selection.Copy
                
                lUltimaLinhaAtiva3 = Workbooks("Consolidado.xlsm").Worksheets("Consolidado").Cells(Workbooks("Consolidado.xlsm").Worksheets("Consolidado").Rows.Count, 1).End(xlUp).Row + 1
                Workbooks("Consolidado.xlsm").Worksheets("Consolidado").Activate
                Workbooks("Consolidado.xlsm").Worksheets("Consolidado").Range("A" & lUltimaLinhaAtiva3).Select
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                    :=False, Transpose:=False
            End If
        Next lWorksheet
        
        Workbooks(lworkbooks.Name).Close
        
        lControle = lControle + 1
    Wend
    
    Worksheets("Configuração").Select
    Worksheets("Configuração").Range("A1").Select
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    
    MsgBox "Planilhas consolidadas!"
        
End Sub

A planilha principal é a Consolidado.xlsm, as outras em anexo são para você usar como exemplo, não esqueça de salvá-las no seu computador e configurar o local aonde foram salvas.

Abraço

Marcos Rieper

Avalie este post

Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel

plugins premium WordPress