Notifications
Clear all

Renomear Vários Arquivos

4 Posts
2 Usuários
0 Reactions
1,119 Visualizações
Kaleo_rs
(@kaleo_rs)
Posts: 0
Trusted Member
Topic starter
 

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.

 
Postado : 21/09/2016 8:37 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

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.

 
Postado : 21/09/2016 10:21 am
Kaleo_rs
(@kaleo_rs)
Posts: 0
Trusted Member
Topic starter
 

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.

 
Postado : 21/09/2016 5:54 pm
Kaleo_rs
(@kaleo_rs)
Posts: 0
Trusted Member
Topic starter
 

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
 
Postado : 22/09/2016 8:13 pm