Tabela price Excel capa - Guia do Excel
Tabela Price com carência no Excel
26 de março de 2018
Ler comentários com VBA capa - Guia de Excel
Agilizar leitura de comentários no Excel
7 de abril de 2018

Juntar planilhas Excel em uma só

Uma solução para juntar planilhas em uma só, com ela você poderá consolidar planilhas Excel com VBA, fazendo com que os dados de todas as planilhas sejam colocados em apenas uma. Planilhas Excel VBA.

Um problema recorrente que vejo nas empresas é a necessidade de unir várias planilhas Excel em uma só.

Isso acontece por inúmeros motivos, como por exemplo unir as planilhas que foram preenchidas em várias filiais, ou unir os dados de relatórios de vendas de vários vendedores ou de uma fonte de dados que você localizou na internet, etc.

A boa notícia é que você poderá fazer isso com apenas um clique usando este simples tutorial.

Caso você não queira fazer todo o passo-a-passo você pode fazer o download e usar o artigo para entender o que foi feito. Neste caso vá diretamente para Juntar planilhas Excel em uma só.

Habilitar a guia Desenvolvedor

Para juntar as planilhas em uma só o primeiro passo é habilitar a guia Desenvolvedor do Excel, pois iremos usar um código VBA para realizar esta tarefa.

Siga os passos abaixo caso não tenha esta guia habilitada, ou siga para o próximo tópico caso já tenha ela.

  1. Verifique se você já possui a guia Desenvolvedor habilitada, conforme imagem abaixo:Juntar planilhas Excel em uma só 2
  2. Caso ela não esteja habilitada, clique com o botão direito sobre qualquer parte cinza da faixa de opções e clique na opção Personalizar a Faixa de Opções.
  3. A opção marcada já será Personalizar Faixa de Opções, então em Guias Principais selecione Desenvolvedor.Habilitar guia desenvolvedor Excel

Copiando o código para consolidar planilhas

  Nesta etapa você irá copiar e colar o código fonte na planilha aonde você quiser consolidar os dados das outras planilhas.

  Este código fonte faz a busca por todas as pastas de trabalho, arquivos Excel, que houverem na pasta que você selecionar e abre cada uma das planilhas e as une, independente da quantidade de colunas e linhas inclusive.

  1. Abra um novo arquivo Excel, pode pressionar CTRL+o para isso.
  2. Clique na guia Desenvolvedor e no botão Visual Basic, é o primeiro botão da guia.
  3. Na tela que segue clique em Inserir->Módulo. Importante, veja se você está na pasta de trabalho correta.Juntar planilhas Excel em uma só 4
  4. Clique duas vezes no Módulo1 que foi criado e cole o código abaixo:
'UnificarPlanilhas Macro
Sub lsUnificarPlanilhas()
    On Error GoTo Sair

  Dim lUltimaColunaAtiva As Long
  Dim lUltimaLinhaAtiva As Long
  Dim lRng As Range
  Dim sPath As String
  Dim fName As String
  Dim lNomeWB As String
  Dim lIPlan As Integer
  Dim lUltimaLinhaPlanDestino As Long
   
  PlanilhaDestino = ThisWorkbook.Name
 
  sPath = Localizar_Caminho
 
  sName = Dir(sPath & "\*.xl*")
 
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  Application.Calculation = xlCalculationManual
   
  Do While sName <> ""
        fName = sPath & "\" & sName
        Workbooks.Open Filename:=fName, UpdateLinks:=False
        
        lNomeWB = ActiveWorkbook.Name
        
        For lIPlan = 1 To ActiveWorkbook.Sheets.Count
            Workbooks(lNomeWB).Worksheets(lIPlan).Activate
        
            lUltimaLinhaAtiva = Cells(Rows.Count, 1).End(xlUp).Row
            lUltimaColunaAtiva = ActiveSheet.Cells(1, 5000).End(xlToLeft).Column
            
            Set lRng = Range(Cells(1, lUltimaColunaAtiva).Address)
            
            Range("A" & 1 & ":" & gfLetraColuna(lRng) & lUltimaLinhaAtiva).Select
            Selection.Copy
            
            Workbooks(PlanilhaDestino).Worksheets(1).Activate
            
            lUltimaLinhaPlanDestino = Cells(Rows.Count, 1).End(xlUp).Row
            
            If lUltimaLinhaPlanDestino > 1 Then
                lUltimaLinhaPlanDestino = Cells(Rows.Count, 1).End(xlUp).Row + 1
            End If
            
            Range("A" & lUltimaLinhaPlanDestino).Select
            
            ActiveSheet.Paste
            Application.CutCopyMode = False
        Next lIPlan
        
        Workbooks(lNomeWB).Close SaveChanges:=False
        sName = Dir()
  Loop
  
  MsgBox "Planilhas unificadas!"

Sair:
  Application.ScreenUpdating = True
  Application.EnableEvents = True
  Application.Calculation = xlCalculationAutomatic
End Sub

Function gfLetraColuna(ByVal rng As Range) As String
    Dim lTexto() As String
    
    lTexto = Split(rng.Address, "$")
    
    gfLetraColuna = lTexto(1)
End Function

Public Function Localizar_Caminho() As String

    Dim strCaminho As String
    
    With Application.FileDialog(msoFileDialogFolderPicker)
        
        'Permitir mais de uma pasta
        .AllowMultiSelect = False
        
        'Mostrar janela
        .Show
        
        If .SelectedItems.Count > 0 Then
            strCaminho = .SelectedItems(1)
        End If
    
    End With
    
    'Atribuir caminho a variável
    Localizar_Caminho = strCaminho

End Function

5. Feche o VBA

6. Salve o seu arquivo como Pasta de trabalho Habilitada para Macro do Excel.

Juntar planilhas Excel em uma Só

  Agora iremos testar a aplicação, você pode usar o seu arquivo que acabou de criar ou fazer o download da planilha pronta e seguir o passo-a-passo seguinte.

  1. Descompacte o arquivo do download e extraia para um lugar no seu computador.
  2. Há um arquivo que é o Planilha teste unificar e a pasta Planilhas a unir. O arquivo é o arquivo que receberá os dados das pastas de trabalhos e a pasta Planilhas a unir são as pastas de trabalho que desejamos juntar.
  3. Clique na guia Desenvolvedor->Macros e na tela seguinte selecione lsUnificarPlanilhas esta macro irá usar o VBA para juntar vários arquivos Excel.
  4. Clique no botão Executar
  5. Na tela que segue selecione o local aonde estão suas pastas de trabalho a unir, no  nosso caso é a pasta Planilhas a unir. Nela temos vários arquivos com tamanhos diferentes e que serão unidos rapidamente pelo Excel.Juntar planilhas Excel em uma só
  6. Pronto, todos os dados foram unidos. No caso do nosso exemplo temos informações até a coluna S nos arquivos da pasta, mas o Excel irá juntar as planilhas independente da quantidade de colunas que cada arquivo tiver.
  7. Caso você tenha penas um arquivo com várias planilhas o processo é o mesmo, apenas selecione a pasta aonde o mesmo está e processe o código VBA para unir todas as planilhas em uma só.

Veja mais neste artigo [Excel] Auto completar e lista automática – Planilha de Promoções

Abraço

Marcos Rieper


Clique aqui e leia mais sobre Excel VBA. https://www.guiadoexcel.com.br/vba/ O Guia do Excel foi criado por Marcos Rieper e oferece artigos, dicas, tutoriais e modelos de planilhas prontas. Aqui você encontra tudo sobre Excel, seja de nível básico, intermediário,  avançado e VBA. O Guia do Excel oferece diversos materiais completamente gratuitos para download. Navegue em nosso site e confira! Conheça também a nossa Loja do Excel https://loja.guiadoexcel.com.br/
Cursos

Curso Excel Básico – 1 ano de acesso

R$99,00

COMPRAR
Cursos

Curso Excel Completo – Curso Excel Básico + Curso Excel Avançado – Acesso Vitalício

R$218,00 R$179,00

COMPRAR
Cursos

Curso Excel Master – Curso Excel Básico + Curso Excel Avançado + Curso VBA Excel + LP – Acesso Vitalício

R$357,00 R$249,00

COMPRAR
Cursos

Curso Excel PRO – Curso Excel Avançado + Curso VBA Excel + Lógica de programação – Acesso Vitalício

R$258,00 R$199,00

COMPRAR

28 Comentários

  1. Eloilson dos Anjos Rocha disse:

    Show de bola essa macro, mais quando eu quero copiar apenas a plan1 de cada pasta de trabalho, onde eu modifico o código para minha realidade, desde já obrigado!

  2. Benedito Jaciel de Castro disse:

    Gostei muito da sua planilha. Copiei o VBA colei em uma nova planilha. Salvei o arquivo como Pasta de trabalho Habilitada para Macro do Excel. Unifiquei a planilha com os seus arquivos e deu tudo certo. Porém as minhas duas planilhas fazendo a unificação retorna com uma coluna só. Gostaria muito de trocar uma ideia com você porque não deu certo. As duas planilhas que tenho, todas contém formulas. Aguardo uma resposta. Muito Obrigado.

    • HALLITON disse:

      Olá, não sei se você já resolveu o problema, mas tinha esse mesmo problema consegui resolver alterando a extensão do arquivo de .csv para .xlsx

  3. Wilson disse:

    Fiz isso com minhas planilhas, ele copiou somente as duas primeiras colunas, não me adiantou muita coisa, alguém sabe porque?

  4. Cristiane disse:

    Eu gostaria muito da ajuda para fazer a macro com algumas bases que tenho, essas bases tem varias linhas antes do cabeçalho que preciso copiar de todas as macros que eu vi ate agora nenhuma tem para este padrão que eu preciso.

  5. Veber S. B. Tenorio disse:

    Obrigado pela dica! Super simples e alto impacto na atividade. Parabens!

  6. Andre disse:

    Boa tarde Marco muito obrigado desde ja por partilhar tamanho conhecimento com todos nos
    Gostaria de saber se ha forma de juntar folhas tabelas excel numa so tabela com varias planilhas

    ou seja tenho 130 folhas excel e tenho de abrir uma a uma , mas a ideia e de colocar todas numa so folha mas separadas por varias janelas

    obrigado

  7. Anselmo disse:

    Olá Marcos,

    Muito obrigado pela ajuda! Parabéns!

    A quantidade de planilhas que estou juntando ultrapassa o limite de 1.048.576 linhas do excel. Teria algum modo de fazer esse junção para gerar uma planilha com um número maior de linhas do que o limite do excel?

  8. LEONARDO disse:

    Aparentemente eu desconfigurei alguma funcionalidade… ao executar a macro, só funciona para o primeiro arquivo da pasta de trabalho e só para 2 planilhas do arquivo (o arquivo tem 7 abas). Alguém saberia como resolver isso ?

  9. CAROLINA PEREIRA KECHINSKI disse:

    ALGUM MOTIVO PARA ELE JUNTAR SOMENTE 15 PLANILHAS COM 23MIL LINHAS? EU TENHO UMAS 30 PLANILHAS PARA JUNTAR…

    • Marcos Rieper disse:

      Olá Carolina, ela junta quantas você precisar, veja se a primeira coluna destas planilhas está preenchida e se não há espaço entre as colunas.

  10. ADILSON LEONARDO DOMINGUES disse:

    Boa Noite Marcos Rieper !!! Meus parabéns por esta post e planilha modelo, eu nem imaginava que isto seria possível juntas as planilhas em uma só com uma macro no excel, me ajudou e agilizou muito muito meu serviço e me fez interessar ainda mais pelo Excel. Minha planilhas vem com a Coluna A em branco, para que a macro funcione preciso abrir e excluir a coluna A, seria possível modificar a macro para começar a copiar as planilhas a partir da coluna B ? O que é necessário alterar para que funcione na coluna B ?

    • Marcos Rieper disse:

      Obrigado Adilson. Altere nesta linha Range(“A” & 1 & “:” & gfLetraColuna(lRng) & lUltimaLinhaAtiva).Select para “B” ao invés de “A”

  11. Rodrigo Adriano disse:

    Boa tarde. Eu tentei com minha planilha mas ele só abre a primeira planilha. O que pode ser ?

  12. Diego disse:

    Olá , Marcos

    Essa macro será muito útil na minha atividades, porém quando eu quero copiar apenas a plan1 de cada pasta de trabalho, onde eu modifico o código para minha realidade ?

  13. Guilherme Mamede disse:

    Olá Marcos,

    É possível selecionar apenas algumas células das planilhas que quero unificar, ou seja, sem a necessidade juntar TODOS os dados da planilha? Por exemplo, quero reunir em uma única planilha apenas os dados das células A2 de cada arquivo Excel, referentes à Planilha1 de cada arquivo.
    Se puder me ajudar, serei muito grato!
    Abraços.

  14. Israel disse:

    Olá Marcos, boa tarde.

    Marcos, até agora seus vídeos foram os melhores, mas estou com um problema. Tenho várias lista em excel, mas todas com formatos diferentes, tanto na escrita como no tamanho das células, nas cores. Fiz esse procedimento e não deu certo. Qual o caminho mais fácil. Muito obrigado pelas dicas.. Parabéns

  15. Lenilton disse:

    Muito bom, funcionou perfeitamente!!! Obrigado.

  16. fernando disse:

    Oi, adorei a sua dica. Gostaria de saber se tem como inseri na primeira coluna o respectivo nome de cada arquivo.

  17. Paulo disse:

    Marcos, boa tarde!
    Muito bom seu macro, obrigado por compartilhar.

    Encontrei uma dificuldade, estou tentando juntar 180 planilhas que foram exportadas de um sistema mas elas estão em .xls (97-2003) e o macro não completa a união delas, abre a primeira planilha e já para.
    Percebi que salvando como .xlsx o macro consegue completar a tarefa sem problemas, no entanto não queria abrir todos os arquivos para salva-los novamente.
    Tem alguma alteração que pode solucionar este problema?

    Muito obrigado desde já!

  18. Rafael disse:

    Não consegui. No seu vídeo ele fez as colunas e linhas automático. Fiz de acordo com o que ensinou, mas n funcionou do mesmo jeito. Veio tudo em única coluna com várias linhas e não puxou o todos os dados em todas as linhas e colunas quando transformei de texto para coluna. Pode ajudar?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.