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

22/05/2017

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 cada pasta continha cerca de 12 subpastas.

Não contente com o trabalha braçal, resolvi procurar por alguma solução alternativa para o meu problema.

E a resposta foi VBA! Irei explicar agora o desafio, e exemplificá-lo, para facilitar.

Antes de tudo, planilhei o nome das pastas que precisei criar, respeitando a seguinte hierarquia: criando primeiro as pastas principais, e em seguida suas subpastas.



Em seguida, fui até a área de código VBA, através do atalho "Alt + F11".
Inseri um novo módulo e escrevi o seguinte código:



O código em questão:

Sub criardir()
For i = 1 To 27
    MkDir (Range("A" & i))
Next
End Sub

Vamos à explicação do código:

O comando iniciado por For e encerrado por Next é um laço.
Isso significa que será repetido o que está entre o For e o Next por um número predefinido de vezes.

Para utilizar o For... Next, precisaremos de uma variável que receberá um valor a cada repetição.

Nesse caso, foi definido um valor pra variável "i": de 1 a 27. A partir disso, esse comando executa 27 repetições, onde, em cada uma delas o valor do "i" é alterado para o valor da repetição em questão, começando por 1, em seguida por 2, 3 e assim sucessivamente, sempre encerrando no Next e voltando para a primeira linha do For, até que se conclua as 27 repetições. Podemos também aproveitar o valor do "i" para questões que veremos a seguir.

Já o comando MkDir("Caminho do Diretório") é o responsável pela criação do diretório, sendo necessário respeitar a árvore hierárquica dos diretórios, criando primeiro as pastas raízes, como "T:\Diretorios", e em seguida as subpastas, como "T:\Diretorios\Empresa 1", e assim sucessivamente, como "T:\Diretorios\Empresa 1\Mes 1", "T:\Diretorios\Empresa 1\Mes 2".

O que fiz foi definir que, a cada vez que a função For se repita, dentre as 27 vezes definidas, o valor dentro do MkDir() seja o mesmo de uma das células que escrevi os nomes dos diretórios anteriormente na planilha.

O comando que pega o valor das células da planilha é o Range("A1") por exemplo, que pega o valor da célula A1 e trás para o VBA.
Porém, como eu queria o valor das células A1 até a A27, troquei a número da linha da célula de "1" pelo "i". Lembrando que o "i" será alterado a cada repetição do For... Next.

Dessa maneira, toda vez que o For rodar e der um novo valor para o "i", ele representará o número da linha da célula correspondente e me trará o valor contido nela, ficando assim: Range("A" & i). O caractere "&" serve para juntar a coluna "A" com a linha "i". Se o "i" vale 5, resultaria automaticamente em "A5".

Caso tenha que criar 1000 diretórios, basta ajustar o For, de 1 to 27 para For i = 1 to 1000.
E caso os nomes das pastas estejam em outra coluna, troque o A pela letra da coluna correspondente.

Bom, é isso!

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! ^_^

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 ...