Você está na página 1de 6

APOSTILA BÁSICA DE

VBA PARA
COMMAND POST

COMMAND POST
RECEPTIVO
Apostila para facilitação e
complementação de insumos e
códigos básicos de VBA, mais
utilizados na área de Planejamento.
INTRODUÇÃO
O presente documento visa concentrar em um único lugar, os principais
comandos, códigos e algoritmos utilizados nas Macros e automatização de processos
de abastecimento dos relatórios e controles da área de Planejamento.

1. Selecionar, Copiar e Colar

Talvez uma das funções mais básicas de todo o VBA. Esta aplicação visa
selecionar, copiar e colar.

Aplica-se de tal forma:

● Range(“a1”).select : Seleciona a célula em questão, que no exemplo, é A1.


Pode-se selecionar mais de 1 célula, como um schedulle inteiro, tendo a diferença da
primeira célula superior esquerda como inicial, dois pontos (:) e a última célula inferior
direita. Ex.: Range(“A1:af351”).select. Existe outro método que, seleciona todas as
células de uma planilha, cujo é representado por Cells. Ex.: Cells.Select;
● Copy: Após a seleção pelo método Range ou Cells, há inúmeras funções que
podem ser aplicadas. A mais comum é de copiar os itens. Ao selecionar um quadro,
planilha etc. pelo método range, ou todas as células pelo método Cells, aplica-se o
Selection.Copy. Este comando copia todas as células selecionadas;
● Paste: Após copiar, geralmente, o processo seguinte é colar. Pode aplicar a
colagem da mesma forma que se aplica convencionalmente no Excel. Somente
Valores, Transpor, Fórmulas. Importante ressaltar que para colar os valores, é
necessário expor a partir de qual célula, ou de todas as células, que segue no
parâmetro Range e Cells. Ex.: Range(“a1:a10”).select , Selection.Copy ,
Range(“b1”).select , Selection.PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False.

Para facilitar o entendimento, iremos simular a função de copiar um schedulle


(célula a1 para célula b15) e colar valores na célula c5. Ex.:
2. Navegação entre Abas e Planilhas

Outra função simples é a de navegação entre as abas da planilha. O código


necessário para funcionamento é Sheets(“Plan1”).select . Plan1 pode ser trocado pelo
nome que você aplicar na aba da planilha. Importante destacar que caso efetuado uma
Macro e você alterar o nome da Aba posteriormente, a macro apresentará um erro,
pois não muda no código. Você terá que editar a macro para funcionamento.

Ex.: Antes era Sheets(“plan1”).select e você fez a Macro e logo já alterou o


nome Plan1 para Dados brutos, você terá que entrar no projeto em VBA, identificar a
linha de execução Sheets(“plan1”).select e trocar o plan1 por Dados brutos, ficando
desta forma Sheets(“Dados Brutos”).select.

Você pode mover ou copiar abas do Excel também, tanto selecionadas em


grupo, quanto isoladas. Para mover/copiar mais de uma aba, o comando deve ser
executado da seguinte forma: Sheets(Array("Base", "Inf", "Relatório")).Select para
selecionar as abas, Application.CutCopyMode = False para copiar essas abas
selecionadas e Sheets("Relatório").Copy After:=Sheets(3) para colar essa aba. O
Comando ali referido de AFTER:=SHEETS(3), é o que define onde a aba vai ser copiada,
que no caso é, 3ª aba da esquerda para direita da planilha. Ressalto que este funciona
apenas para navegação dentro da própria planilha. Estes nomes são específicos e
usados como exemplo, podendo ser alterados conforme necessidade.

Ainda, você pode alterar o nome das abas, acrescentar e ou deleta-las da


planilha, conforme tais comandos: Sheets(“Plan1”).name = “Dados brutos” ,
Sheets.Add After:=Sheets(Sheets.Count) e Sheets(“Plan2”).select ,
ActiveWindow.SelectedSheets.delete , respectivamente.

Continuando neste assunto, há outro comando similar, mas para navegação


entre planilhas diferentes. O comando utilizado é Windows. Pode se utilizar da
seguinte forma: Windows(“Estratégia.xlsx”).Activate , desta forma, o VBA entenderá
que deverá ir para a planilha Estratégia. Gostaria de destacar que este comando só
funciona se a planilha já estiver aberta.
Outro exemplo interessante, utilizando as informações já repassadas, é este
cenário: Há duas planilhas abertas, e você deseja passar os dados (colar valores) da
aba 3 da planilha 1 para a aba 2 da planilha 2. Segue imagem para facilitar o
entendimento:

Ou, seguindo a mesma linha, você pode copiar a aba1 da planilha1 para a
planilha 2. Se o nome for igual uma aba já existente, automaticamente o Excel colocará
entre parênteses o número 2, ficando aba1(2). Na prática:

E para colocar a aba1 na mesma planilha1, mas modificando o nome após a


alteração:

3. Abrindo Planilhas da Rede ou Pastas Pessoais


Um pouco mais complicado que os anteriores, porém, muito útil, é o de abrir planilhas
que estão fechadas na rede ou na sua própria pasta pessoal. Tem como utilidade a função de
atualização de vínculos entre planilhas, fazer funções como copiar quadros entre planilhas etc..

Destaco que é fundamental saber o caminho do qual o arquivo está, e o nome da


planilha (sem esquecer a extensão) para funcionamento.

O comando referido é Workbooks.Open Filename:="C:\Users\alessandro.costa\


Documents\Planilha2.xlsx". Isto para abrir a planilha2 que esta em meus documentos no meu
computador. Irei exemplificar abrindo uma planilha que muitos conhecem: Workbooks.Open
Filename:= _ \\172.28.2.5\Planejamento\006_CPOST\001_RELATÓRIOS\
2014\08_AGO2014\05. Desligados\DESLIGADOS_AGO14.xlsx. No VBA fica da seguinte forma:

É válido ressaltar que, na virada de mês, se faz necessário alterar no caminho, as

pastas, pois não será mais Agosto, e provavelmente, a pasta passará a ser 09_SET2014. Depois
ficando pendente somente a atualização da 05. Desligado caso seja alterado e o nome da
planilha, seguindo o mesmo padrão.

Vamos imaginar que houvesse uma planilha de Desligados por dia, ou seja,
desligados01.07, desligados02.07 etc, como aplicar para a macro abrir estas planilhas
automaticamente? Irei detalhar da forma mais clara possível.

Coloque o nome da planilha em uma célula do VBA, seguindo o padrão de texto


(=”desligados01.07.xlsx”). Desta forma, caso queira abrir a planilha do dia 17 de Julho, bastaria
somente trocar o dia, correto? Com isto, partimos ao VBA.

No VBA, o comando para definir o nome de uma célula como variável (existem outros,
porém o que mais utilizo e funciona) é Dim “nome qualquer” as String. Com isso, você defini
que este “nome qualquer” podendo ser “pato”, é uma variável. Então se Dim pato as String,
defino que pato é uma variável. Logo após, indico que “pato” é igual o valor de uma célula, que
pode ser a célula que você colocou a fórmula para a variação de dia da planilha de desligados,
aquele =”desligados01.07.xlsx”. Ficando da seguinte forma pato = range(“a1”).value (se
aquela variação do nome estiver na célula a1). Após todo esse trabalho, pasta seguir a linha de
abrir a planilha de desligados, porém alterando o nome no fim para “ pato “.

Ex.: Workbooks.Open Filename:= _

Ex.: "\\172.28.2.5\Planejamento\006_CPOST\001_RELATÓRIOS\2014\07_Jul2014\05.
Desligados\" & pato & ""
Para facilitar a compreensão, irei disponibilizar a imagem do código em VBA:

Desta forma, se você alterar a fórmula, que é o nome da planilha, na célula a1,
para 17.07, ficando desligados17.07.xlsx, e essa planilha existir no comando que
definido, dentro do próprio caminho ali referido.

Você também pode gostar