Blog

Postado em em 11 de setembro de 2020

Percorrendo arquivos de uma pasta

Percorrendo Arquivos de uma Pasta

Nessa publicação vou te mostrar como usar o VBA para arquivos quando estivermos percorrendo arquivos de uma pasta no computador.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Para receber a planilha que usamos na aula no seu e-mail, preencha:

Por que percorrer arquivos de uma pasta?

Porque, percorrendo os arquivos de uma pasta podemos realizar determinadas ações com todos esses arquivos de uma vez, em um único código. Será fundamental para a ferramenta final da nossa série de consolidação de dados no Excel.

 

Como fazemos para percorrer os arquivos de uma pasta?

Caso você não tenha acompanhado outros posts, esse é dedicado à décima aula da nossa série compilação de planilhas no VBA, e nela ensinamos conteúdos que serão fundamentais nesse post, e portanto, nele serão abordados mais superficialmente.

Existem diversas estruturas de repetição no VBA e cada uma delas é mais recomendada para uma situação específica. A estrutura que vamos dedicar o post é a For Each. Essa é uma estrutura cujo foco é percorrer objetos como um todo.

Por exemplo: hoje queremos percorrer arquivos em uma pasta, com objetivo de abrir todas as planilhas dentro dela. Lembre-se que recentemente fizemos um post dedicado as estruturas de repetição, onde explicamos detalhadamente.

Nosso objetivo nesse post é mostrar como andar por esses arquivos, que representam as vendas de unidades da nossa empresa, e colocar os nomes dessas planilhas no nosso arquivo central, na coluna A.

Para isso, precisamos abrir o VBA, através do atalho Alt(+Fn)+F11, e ir na guia Inserir > Módulo. A partir dali, criaremos a nossa sub percorrer_pasta, como no vídeo. Confira abaixo o código da nossa sub pronta e em seguida sua explicação:

Sub percorrer_pasta() 

Dim pasta As Object

Dim caminho_pasta As String

caminho_pasta = "C:UsersdamorOneDriveHashtag (1)OnlineConteúdosPlanilhas2020VBA8-01 - Série Compilação com PlanilhasPlanilhas" & ""

Set pasta = CreateObject("Scripting.FileSystemObject").getfolder(caminho_pasta)
 
For Each arquivo In pasta.Files

    primeira_vazia = Range("A1048576").End(xlUp).Row + 1
   
    Cells(primeira_vazia, 1).Value = arquivo.Name

Next

End Sub

 

Explicação da sub percorrer_pasta():

Logo no começo precisamos definir algumas variáveis para o VBA, porque iremos usá-los durante o nosso código. A variável “pasta” será um objeto e a variável “caminho_pasta” será um texto (string).

Depois disso, diremos para o VBA armazenar o caminho da pasta onde estão todos os nossos arquivos a serem percorridos na variável “caminho_pasta”.

Após, vamos passar para o VBA que a variável “pasta” (objeto que criamos no início) assumirá ou representará o objeto que será um arquivo do sistema criado pelo VBA que está no caminho passado pela variável “caminho_pasta”.

Então, começamos a nossa estrutura de repetição, dizendo para o VBA que queremos percorrer todos os arquivos dentro dos arquivos (files) do objeto pasta (objeto que é representado pela nossa variável “pasta”).

Ao entrar em cada arquivo, queremos:

1) Descobrir a primeira linha vazia da coluna A, para que façamos o registro do nome dessa planilha e armazenar essa informação na variável “primeira_vazia”;

2) Registraremos o nome desse arquivo (arquivo.Name) na célula correspondente à primeira linha vazia da coluna A (1ª linha).

Ir para o próximo arquivo, repetir, até os arquivos serem todos registrados e fecharemos nossa sub. Veja abaixo o resultado dela, quando executada de uma vez:

Listar Arquivos de Uma Pasta no Excel

Listar Arquivos de Uma Pasta no Excel

OBS1: Lembrando que não somos obrigados a declarar as variáveis. Nesse caso deixamos de declarar a variável “primeira_linha” e a variável “arquivo”. O VBA vai entender que a primeira_linha é uma variável do tipo Variant (engloba todos os tipos), e vai entender que a “arquivo” é um objeto, porque estamos dizendo que arquivo é uma unidade do conjunto de arquivos dentro do objeto “pasta” (estará implícito).

OBS2: Lembre-se que o caminho da nossa sub será diferente do que está apresentado no arquivo de gabarito. Cada computador tem um caminho de pasta diferente.

Com isso, conseguimos percorrer arquivos de uma pasta no VBA e conseguimos listar arquivos de uma pasta com VBA. Isso vai ser muito útil para a construção da nossa ferramenta final de compilação, que tem a funcionalidade de percorrer os arquivos de uma pasta, e para cada um deles vamos realizar determinadas ações.

Ficamos por aqui! Fique ligado no nosso blog para mais conteúdo de VBA e no nosso canal do Youtube para as próximas aulas!

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um Minicurso Gratuito?


Intensivão de Power BI
28/09 a 01/10
100% Online e Gratuito