Notifications
Clear all

Macro Renomear Pastas

8 Posts
3 Usuários
0 Reactions
2,047 Visualizações
(@romanholi)
Posts: 0
New Member
Topic starter
 

Pessoal, bom dia!

Será que existe uma forma de renomear "PASTAS" de um determinado diretório via VBA?

Com base numa planilha
Coluna A
DE:
Coluna B
PARA:

Eu tenho essa macro, mas para renomear arquivos... preciso renomear pastas em lote!

Será que vocês poderiam me ajudar!

Obrigado pessoal

 
Postado : 02/05/2017 6:08 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

romanholi,

Bom dia!

Movi sua mensagem para o sub fórum adequado: VBA & Macros. Por gentileza, em outras postagens, queira observar as regras do fórum e postar os tópicos nos locais corretos. Isso ajudará nas respostas a sua necessidade e manterá o fórum organizado.

 
Postado : 02/05/2017 6:12 am
(@edsonbr)
Posts: 0
New Member
 

Bom dia, Romanholi

Logicamente que daria prá fazer o que vc deseja com VBA. Entretanto, prá não ter que ficar "reinventando a roda", quando tenho que renomear em lote, há anos venho utilizando um aplicativo bem pequeno, gratuito, já velhinho, que até roda opcionalmente sem ter que instalar, mas que é muito poderoso, embora a interface dele não seja lá aquelas coisas (o site dele também é bastante minimalista).
É o Flexible Renamer, da Naru (japonês). Ele permite inclusive o uso de Expressões Regulares (Regex - sabor Perl/Boos Regex) e de VBScripts (quase idêntico ao VBA) ou JScripts.

Além disso ele permite que vc visualize o resultado antes de concluir a renomeação, ou de desfazer caso se arrependa. Dá também prá brincar com Tags de músicas dos arquivos .mp3, por exemplo, incluindo informações como o nome do artista, etc., no nome do arquivo também, o que não vem ao caso de sua necessidade, mas seria um "bônus".

Se quiser tentar dar uma olhada, talvez simplifique muito sua tarefa. Se depois precisar dicas do programa, posso tentar ajudar.

 
Postado : 02/05/2017 8:00 am
(@romanholi)
Posts: 0
New Member
Topic starter
 

Wagner, me desculpa a falta de atenção!

Edson, muito obrigado pelo retorno!
O programa permite renomear as pastas também ou somente arquivos?
Eu tenho muitas pastas cujo nome é uma data. Exemplo:
01-04-2017
02-04-2017
03-04-2017
E muitas outras... de vários anos...

Eu quero renomear para:
2017-04-01
2017-04-02
2017-04-03

O programa permite fazer isso no nome das pastas... Ele permite eu importar os nomes de uma lista? Não servira se eu tiver que digitar nome por nome!

Pensei no Excel pela facilidade de fazer uma de: para:

Ah... eu utilizo o código abaixo para renomear ARQUIVOS, se fosse possível customiza-lo para renomear PASTAS:

Sub RenomearArq()
Dim sNovoNome, sNomeAnterior

    'Renomeia arquivos
    'O usuário tem uma opção para desistir da ação
    If MsgBox("Deseja realmente alterar o nome dos arquivos listados", vbQuestion + vbYesNo, "MUDANÇA DE NOME") = vbNo Then
       Exit Sub
    End If
    
    'Linha Inicial
    c = 2
    
        'Executa enquanto a Coluna B não estiver Vazia
        Do While Range("B" & c).Value <> ""
            'Nome anterior na Coluna B
            NomeAntigo = Range("A" & c).Value & Range("B" & c).Value
            
            
            'Nome NOVO na Coluna C
            NovoNome = Range("A" & c).Value & Range("C" & c).Value
     
            sNovoNome = NovoNome
            sNomeAnterior = Range("B" & c).Value
    
            Name NomeAntigo As sNovoNome
            
            Range("C" & c).Font.ColorIndex = 5
            'MsgBox sNomeAnterior & Chr(13) & Chr(13) & "Renomeados com sucesso !!" & Chr(13), vbInformation, "NOME ALTERADO"
    
           c = c + 1
        Loop

End Sub

Aguardo Retorno
Obrigado meu amigo

 
Postado : 02/05/2017 9:01 am
(@edsonbr)
Posts: 0
New Member
 

O programa permite renomear as pastas também ou somente arquivos?
Eu tenho muitas pastas cujo nome é uma data. Exemplo:
01-04-2017
02-04-2017
03-04-2017
E muitas outras... de vários anos...
Eu quero renomear para:
2017-04-01
2017-04-02
2017-04-03

Para fazer isso é bem simples e imediato. Veja na figura anexa.

Ele permite eu importar os nomes de uma lista?

Sim, daria prá fazer através de um Script (.vbs) onde ele poderia abrir o Excel e importar os nomes. Ou inserir direto no código. Mas aí teria que analisar como fazer conforme suas planilhas estão arranjadas.

Não analisei seu código, mas se vc quiser usar VBA, sugiro usar o File System Objects da bibioteca Microsoft Scripting Runtime ou da biblioteca Windows Script Host Object Model, que têm estrutura adequada para trabalhar com Folders/Subfolders.

 
Postado : 02/05/2017 9:42 am
(@romanholi)
Posts: 0
New Member
Topic starter
 

Então, esqueci de um detalhe:

Antes da Data tem um nome:

Isabela 01-04-2017
Isabela 02-04-2017
Isabela 03-04-2017

Para

Isabela 2017-04-01
Isabela 2017-04-02
....

Esqueci deste detalhe

Ainda assim é possível meu amigo?

Obrigado pelo retorno! Valeu mesmo!

 
Postado : 02/05/2017 12:32 pm
(@edsonbr)
Posts: 0
New Member
 

Sim, é só incluir o termo nas caixas:

Na caixa Localizar, usar: Isabela ??-??-????
Na caixa Substituir, usar: Isabela 3-2-1

 
Postado : 02/05/2017 12:48 pm
(@romanholi)
Posts: 0
New Member
Topic starter
 

Perfeito meu amigo!
Muitíssimo Obrigado pela AJUDA!

 
Postado : 02/05/2017 12:53 pm