Unindo Mais de 100 Arquivos XLSX em um Único Excel com VBA

Aprenda como unir mais de 100 Arquivos XLSX em um Único Excel com VBA

Olá, seja muito bem vindo (a) a mais uma aula! Hoje, vamos abordar o seguinte tema: Unindo Mais de 100 Arquivos XLSX em um Único Excel com VBA. Vamos aprender como criar uma função personalizada em VBA que permitirá automatizar esse processo complexo e economizar tempo valioso em nosso trabalho diário.

Introdução

Quando trabalhamos com grande quantidade de dados em planilhas do Excel, é comum dividir as informações em vários arquivos para facilitar o gerenciamento e a organização. Entretanto, quando chega o momento de analisar todos esses dados juntos, unir manualmente cada arquivo pode ser uma tarefa demorada e propensa a erros.

Neste tutorial, vamos ensinar como criar uma função personalizada em VBA para combinar mais de 100 arquivos XLSX em uma única planilha, proporcionando uma solução rápida e confiável para consolidar seus dados.

Passo a Passo

1. Acesso ao Editor VBA

Antes de começarmos, acesse o Editor VBA do Excel pressionando “Alt + F11” ou, no menu “Desenvolvedor”, clique em “Visual Basic”.

2. Criação da Função

Dentro do Editor VBA, clique com o botão direito sobre “VBAProject (SeuArquivo.xlsm)” no painel esquerdo e selecione “Inserir” -> “Módulo” para criar um novo módulo.

3. Desenvolvimento da Função

Vamos criar a função personalizada “UnirArquivosXLSX” para combinar mais de 100 arquivos em uma única planilha.

Imagem do código no editor

Código para copiar

Sub UnirArquivosXLSX()
    Dim pasta As String, arquivo As String
    Dim planilhaDestino As Worksheet
    Dim contadorLinhas As Long, i As Long
    Dim wbDestino As Workbook, wbOrigem As Workbook

    ' Define a pasta onde estão os arquivos a serem unidos
    pasta = "C:\Caminho\para\os\arquivos\"

    ' Cria um novo arquivo para receber os dados consolidados
    Set wbDestino = Workbooks.Add(xlWBATWorksheet)
    Set planilhaDestino = wbDestino.Worksheets(1)

    ' Inicializa o contador de linhas
    contadorLinhas = 1

    ' Loop para percorrer todos os arquivos na pasta
    arquivo = Dir(pasta & "*.xlsx")
    Do While arquivo <> ""
        ' Abre o arquivo atual
        Set wbOrigem = Workbooks.Open(pasta & arquivo)

        ' Copia os dados da planilha ativa do arquivo atual para a planilha de destino
        wbOrigem.ActiveSheet.UsedRange.Copy planilhaDestino.Cells(contadorLinhas, 1)

        ' Fecha o arquivo atual sem salvar alterações
        wbOrigem.Close False

        ' Atualiza o contador de linhas para a próxima inserção
        contadorLinhas = contadorLinhas + wbOrigem.ActiveSheet.UsedRange.Rows.Count

        ' Obtém o próximo arquivo da pasta
        arquivo = Dir
    Loop

    ' Formatação da planilha de destino (opcional)
    planilhaDestino.Cells.EntireColumn.AutoFit
    planilhaDestino.Cells.EntireRow.AutoFit

    ' Exibe uma mensagem de conclusão
    MsgBox "União de arquivos concluída com sucesso!", vbInformation

    ' Salva o arquivo consolidado
    wbDestino.SaveAs "C:\Caminho\para\o\arquivo\destino.xlsx"
    wbDestino.Close

    ' Limpa a memória
    Set wbDestino = Nothing
    Set wbOrigem = Nothing
End Sub

4. Explicação da Função

  • Utilizamos as variáveis “pasta” e “arquivo” para representar o caminho da pasta onde estão os arquivos a serem unidos e o nome do arquivo atual, respectivamente.
  • A variável “planilhaDestino” representa a planilha onde os dados consolidados serão armazenados.
  • As variáveis “contadorLinhas” e “i” são utilizadas para controlar a posição de inserção dos dados na planilha de destino.
  • Criamos um novo arquivo para receber os dados consolidados utilizando a função “Workbooks.Add(xlWBATWorksheet)” e definimos “planilhaDestino” como a primeira planilha do arquivo.
  • O loop “Do While” percorre todos os arquivos na pasta usando a função “Dir” e abre cada arquivo com a função “Workbooks.Open”.
  • Os dados da planilha ativa do arquivo atual são copiados para a planilha de destino utilizando a função “Copy”.
  • O contador de linhas é atualizado para a próxima inserção.
  • O loop continua até que todos os arquivos tenham sido processados.
  • Ao final, a função exibe uma mensagem de conclusão e salva o arquivo consolidado.

5. Utilização da Função

Com a função personalizada criada, agora podemos unir mais de 100 arquivos XLSX em um único Excel.

Para fazer isso, siga os passos abaixo:

  1. Certifique-se de que os arquivos que deseja unir estejam todos na pasta especificada na variável “pasta” (ajuste o caminho conforme necessário).
  2. Pressione “Alt + F8” para abrir a caixa de diálogo “Macro”.
  3. Selecione “UnirArquivosXLSX” na lista de macros e clique em “Executar”.

A função “UnirArquivosXLSX” irá unir todos os arquivos presentes na pasta especificada em uma única planilha no Excel. O arquivo consolidado será salvo com o nome “destino.xlsx” no caminho especificado na função “wbDestino.SaveAs”.

Conclusão

E chegamos ao final do nosso artigo: Unindo Mais de 100 Arquivos XLSX em um Único Excel com VBA

Com a função personalizada “UnirArquivosXLSX”, agora você pode unir mais de 100 arquivos XLSX em um único Excel, facilitando a análise e a manipulação de grandes volumes de dados.

A criação de funções personalizadas em VBA no Excel é uma excelente maneira de automatizar tarefas complexas, aumentar a produtividade e melhorar a eficiência em nossos projetos.

Espero que esse tutorial tenha sido útil e que você aproveite ao máximo essa função em suas atividades no Excel. Compartilhe essa dica com seus colegas e torne o trabalho com o Excel mais prático e eficaz!

Até a próxima, e lembre-se: com conhecimento e criatividade, você pode dominar o Excel e alcançar resultados incríveis!

Precisa de Aulas de Excel?

Aulas de Excel, trabalhos e planilhas personalizadas!

Fale Comigo Agora* Basta clicar no botão acima

0 Comentários

Deixe um comentário

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

Solicitar exportação de dados

Utilize este formulário para solicitar uma cópia dos seus dados neste site.

Solicitar remoção de dados

Utilize este formulário para solicitar a remoção dos seus dados neste site.

Solicitar retificação de dados

Utilize este formulário para solicitar a retificação dos seus dados neste site. Aqui você pode corrigir ou atualizar seus dados por exemplo.

Solicitar cancelamento de inscrição

Utilize este formulário para solicitar o cancelamento de inscrição do seu e-mail em nossas Listas de E-mail.