Mostrando postagens com marcador dir. Mostrar todas as postagens
Mostrando postagens com marcador dir. Mostrar todas as postagens

21/05/2017

Dica: Renomear arquivos no Windows através do VBA no Excel

Se você precisa renomear arquivos no Windows, tenho aqui uma solução rápida para você.

No Excel, abra a área de códigos VBA através do atalho no seu teclado "Alt + F11".

Em seguida, insira um módulo: Inserir > Módulo.

Este Módulo surgirá na árvore de opções à esquerda, como Módulo 1. Clique sobre ele.

Agora teremos à direita a área onde o código será introduzido.

Mas antes, vamos às explicações:

Um arquivo precisa ser renomeado.
Certifique-se primeiro de que ele esteja fechado.
A seguir, precisará do endereço dele, ou seja, do diretório, nome e extensão do arquivo no seguinte formato:
"C:\Pasta\Arquivo.txt"
Nesse caso, preciso que meu Arquivo.txt seja renomeado para ArquivoTexto.txt.

A linha de comando é bem simples:
Name "x" as "y"
Sendo x entre aspas o diretório original, e y entre aspas o novo diretório, a ser renomeado.

No módulo VBA, digite a seguinte expressão:

Sub renomear()
Name "C:\Pasta\Arquivo.txt" as "C:\Pasta\ArquivoTexto.txt"
End sub

Por fim, execute o código clicando sobre o  Play "verde", na barra de tarefas acima e confira o resultado abrindo a pasta onde o arquivo se encontra.

Outro exemplo:

Sub renomear()
Name "C:\Pasta\Arquivo.txt" as "C:\Pasta\ArquivoTexto.txt"
Name "C:\Pasta\Arquivo2.txt" as "C:\Pasta\ArquivoTexto2.txt"
Name "C:\Pasta\MeuTexto.txt" as "C:\Pasta\ArquivoTexto3.txt"
Name "C:\Pasta\Planilha.xlsx" as "C:\Pasta\MinhaPlanilha.xlsx" 

End sub

Lembrando que esse método só convém ser realizado em modificações em massa. Você pode através do CMD gerar um log do comando DIR na pasta onde seus arquivos estão, e em seguida montar o código numa planilha de Excel, levando o resultado para um módulo VBA, executando-o em seguida.

Qualquer dúvida deixe seu comentário! ^_^

Função para lidar com Nomes de Arquivos

Segue aqui três funções que precisei criar em uma ocasião.

Elas servem para lidar com nomes de arquivos, exatamente como no exemplo a seguir:
A célula A1 contém o seguinte texto: C:\Pasta1\Subpasta1\ArquivoTeste.txt
Nesse caso, cada função irá retornar um resultado diferente, baseado no exemplo anterior.
A seguir, demonstro o resultado de cada função, caso estas sejam inseridas da seguinte forma em outras células:

=FILENAME(A1) resultaria em: ArquivoTeste
=FILEXT(A1) resultaria em: .txt  
=FILEDIR(A1) resultaria em: C:\Pasta1\Subpasta1\

Segue agora as funções para serem inseridas em um módulo VBA, através do "Alt + F11":


Public Function FILENAME(ByVal flname As String) As String
Dim FILEX As String
FILEX = StrReverse(Mid(StrReverse(flname), 1, WorksheetFunction.Find("\", StrReverse(flname), 1) - 1))
FILENAME = StrReverse(Mid(StrReverse(FILEX), WorksheetFunction.Find(".", StrReverse(FILEX), 1) + 1, 500))
End Function

Public Function FILEXT(ByVal flname As String) As String
Dim FILEX As String
FILEX = StrReverse(Mid(StrReverse(flname), 1, WorksheetFunction.Find("\", StrReverse(flname), 1) - 1))
FILEXT = StrReverse(Mid(StrReverse(FILEX), 1, WorksheetFunction.Find(".", StrReverse(FILEX), 1)))
End Function

Public Function FILEDIR(ByVal flname As String) As String
Dim FILEX As String
FILEDIR = StrReverse(Mid(StrReverse(flname), WorksheetFunction.Find("\", StrReverse(flname), 1), 500))
End Function

É isso!

Dica: Criando Diretórios no Windows (Pastas e Subpastas)

Certa vez, precisei criar uma árvore de pastas no Windows. Lembro-me de ter sido uma tarefa bastante exaustiva, pois envolvia 200 pastas, e ...