Pessoal, preciso de uma ajudinha...
Tenho alguns arquivos que são gerados por um site e infelizmente os nomes deles não são padrão. Os seus nomes são criados randomicamente, ou seja, cada nome do arquivo é composto pelas letras iniciais "REL" + ANO+MES+DIA+HORA+MINUTO+SEGUNDO com a extentção "XLS". Ex.: REL20160921082367.xls
Precisava que me ajudassem a criar um procedimento que lesse uma pastas do windows, tipo c:Temp, localizasse todos os arquivos "REL*.XLS" e fosse inserindo em uma planilha para depois selecionar as células e serem ordenados. Pois pela ordem de geração do arquivo eu sei o que cada arquivo tem de informação.
Conseguindo fazer isso eu consigo renomear eles identificando para nomes padrões.
Olá, Kaleo, boa tarde.
Não entendi muito bem. Sua macro servirá apenas como uma espécie de filtro? Depois de filtrar vc vai renomear os arquivos? Como será o novo nome? O que vc quer dizer com "...identificando para nomes padrões"?
Além disso,
...Pois pela ordem de geração do arquivo eu sei o que cada arquivo tem de informação...
Como nos nomes dos arquivos já contempla a data em que foram gerados, isso já não significa que eles estejam ordenados visto que no próprio nome há uma ordem, por data?
Especifique detalhadamente tudo o que espera conseguir nessa atividade.
Boa noite EdsonBR.
Vou tentar explicar melhor...
Preciso criar uma MACRO que ao ser executada, ao clicar em um botão, ela deve fazer o seguinte processo:
É feito diariamente download de alguns arquivos, as vezes dois ou as vezes três, e estes são colocado no diretório "C:Temp". O primeiro arquivo é gerado com o seguinte nome REL20160921081534.XLS o segundo arquivo é gerado com o seguinte nome REL20160921081558.XLS. Como eles são gerados por um sistema WEB de terceiro não tem como ser alterado o nome na origem, e a geração é feita conforme a data do sistema, pois o nome é criado baseado nestas informações. O download é feito em uma sequencia afim de que os arquivos são gerados para que se possa identificar o que cada um deles contém, assim sabemos que o primeiro sempre tem a informação X o segundo sempre tem a informação Y e o terceiro sempre tem a informação Z.
O primeiro passo é buscar e filtrar TODOS os arquivos que iniciem com "REL*.XLS" no diretório C:Temp
O segunda passo é inserir os nomes dos arquivos encontrado na célula A1, na A2 e na célula A3.
O terceiro passo é ordenar ascendente o intervalo de A1 a A3, como o nome dos arquivos são compostos por números sequenciais o primeiro gerado estará na célula A1 e assim por diante.
O quarto passo é renomear o arquivo da célula A1 para CREDITO, depois renomear o arquivo que está na célula A2 para DEBITO e se A3 diferente de NULL renomear para FUTURO.
Espero ter explicado melhor.
Boa Noite... Encontrei uma solução para o meu problema.
Sub Listar_Arquivos_Excel() ' 'Para Todos os Arquivos 'lsExtensao = "*.*" 'Outros tipos de Arquivos 'lsExtensao = "*.txt" 'lsExtensao = "*.JPG" 'lsExtensao = "*.bmp" lsExtensao = "Relatorio_*.xls" ' 'Seleciona a pasta ChDir "C:Temp" ' 'Determina o diretório e a extensão do arquivo FName = Dir(fPasta & lsExtensao) 'Limpa a planilha Sheets("Plan1").Range("A1:A150").Clear 'Enquanto FName for igual a vazio "", realiza a listagem dos arquivos ' Contador = 2 Do Until FName = "" nome_arq = FName ' ' Passa os dados para a planilha Cells(Contador, 1).Value = nome_arq ' Contador = Contador + 1 FName = Dir Loop ' End Sub