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:
- Certifique-se de que os arquivos que deseja unir estejam todos na pasta especificada na variável “pasta” (ajuste o caminho conforme necessário).
- Pressione “Alt + F8” para abrir a caixa de diálogo “Macro”.
- 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!
0 Comentários