Algumas vezes, precisamos criar Ferramentas em VBA, nas quais é necessário listar os arquivos ou pastas em determinado drive da máquina. Podemos realizar esta tarefa usando o Scripting RunTime, ou mesmo o Shell, porém existe um recurso nativo que permite obter o mesmo resultado.
No exemplo a seguir são retornados todos os arquivos Excel na pasta D:\Projetos
Sub ListarArquivos() 'Desenvolvida por Bruno Leite 'bruno_silva_leite@yahoo.com.br Dim Files As Variant Files = Dir("D:\Projetos\*.xls*", vbArchive) While Files <> vbnullstring Debug.Print Files Files = Dir(, vbArchive) Wend End Sub
Com ela também é possível retornar as pastas, basta usar vbDirectory, ao invés de vbArchive, ou usar filtros com o nome de arquivo.
Por exemplo usando
Files = Dir("D:\Projetos\B*.xls*", vbArchive)
Serão retornado todos os arquivos Excel que começam com a letra B.
Bom é isto ai, até uma próxima!
Bruno Leite Office developer
6 comentários:
Excelente rotina, parabéns.
Se precisar que apareça numa célula esse valor?
Em uma célula? e se for mais que um arquivo?
Para que apareça em uma célula você precisa transformar esta SUB em um FUNCTION e usá-la na célula assim =ListarArquivos
Parabens! Ajudou muito!
Onde aparece os nomes dos arquivos? Como faz para aparecer nas linhas do excel?
Att
Parabéns pela simplicidade e eficiência !
Postar um comentário