Blog

Postado em em 21 de agosto de 2020

Formatação no VBA

Nessa publicação vamos aprender a utilizar a formatação no VBA para deixar as planilhas mais apresentáveis e organizadas!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Clique aqui para baixar a planilha utilizada nessa publicação!

O que é e para que serve a Formatação no VBA?

Formatar é dar forma ou deixar do formato que você deseja uma célula ou uma coluna de dados. Ordenar é o fato de dispor os dados (de uma coluna, por exemplo) através de uma forma organizada, em ordem.

A formatação e a disposição dos dados em ordem servem para possibilitar uma melhor visualização para uma pessoa que interpreta os dados. Assim, pode ajudar a esclarecer situações, tirar melhores conclusões, facilitar interpretações, porque os dados estão melhor dispostos.

Então como lidar com formatação no VBA?

Mais um post da série de compilação de planilhas em uma só do nosso canal, este se destina explicar etapas de como formatar no VBA as colunas e células de uma tabela de dados, e ordená-los, para uma melhor visualização.

Para mostrar como faremos o tratamento desses dados utilizaremos a tabela como no vídeo, que tem a seguinte visualização de dados:

Classificar no VBA

Classificar no VBA

Iremos repetir os passos usados no vídeo, e explicaremos cada um deles e as linhas de código respectivas para cada passo. Observe abaixo o código pronto no vídeo, e as devidas explicações:

Formatação no VBA

Formatação no VBA

1) Autoajuste

O autoajuste é a operação de ajustar automaticamente as colunas com o tamanho mínimo possível para caber os maiores dados (em extensão de caracteres) presentes nas células daquela coluna.

No VBA, o autoajuste é traduzido como Autofit, e é essa operação que devemos inserir no nosso código. Observe abaixo a linha de código que vai ajustar da coluna A até a coluna D, que será a mesma coisa que fazer o ajuste no Excel, com o mouse.

Columns(“A:D”).AutoFit é a instrução que irá realizar o autoajuste das colunas A até a D da nossa tabela.

2) Formatar coluna como data

Para formatar um número no Excel, devemos mudar o seu tipo de acordo com o que queremos. Para isso, devemos abrir a caixa de formato de número, através do atalho Ctrl+1. Em seguida optamos por algum formato específico, e apertamos em OK.

Mas para mudar esse formato no VBA precisaremos passar o que está escrito na opção de “Personalizado” nesse quadro de formatação de número. Para saber exatamente o formato, deve-se optar pelo formato escolhido, e em seguida clicar em “Personalizado”. O que estiver escrito em “Tipo” será o que deveremos escrever em nosso código, devidamente traduzido para o inglês (EUA), por que o VBA lê o código em inglês, e sem os “;” e “@”. Observe abaixo:

Formatando Células com VBA

Formatando Células com VBA

Columns(“A:A”).NumberFormat = “dd/mm/yy” é a instrução que passa para o VBA que queremos botar na coluna A o formato de número de dia/mês/ano, cada um com 2 caracteres. Lembre-se que na imagem acima o ano é representado pela letra “a”, e no VBA devemos passar a letra “y” como equivalente (year = ano, em inglês)

3) Alinhar as colunas ao centro

Columns(“A:D”).HorizontalAlignment = xlCenter é a instrução do código que fará que as colunas de A até D fiquem com seus dados alinhadas na horizontal, e no centro das células.

4) Botar o cabeçalho em negrito

Range(“A1:D1”).Font.Bold = True é a instrução que dirá para o código fazer a operação de colocar a fonte das células A1 até D1 em negrito.

5) Formatar a coluna de valores como moeda

Columns(“D:D”).NumberFormat = “$ #,##0.00” é a instrução que colocará o formato de moeda na coluna D inteira.

Lembre-se que para entender esse passo deve-se repetir o que foi feito no passo 2, optar pela coluna de moeda, e dessa vez, passar para o VBA as intruções de moeda como no inglês americano. Ou seja, a moeda em “$” ao invés de “R$”, e as casas decimais devem ser representadas por “,” em vez de “.”, e o que representa os centavos, “.” em vez de “,”.

6) Colocar borda nas células da tabela

Range(“A1:D17”).Borders.LineStyle = xlContinuous é a instrução que passará ao código a informação para botar o estilo da borda das células de A1 até D17 (nossa tabela de dados) da forma contínua, ou seja, ao redor delas inteiras, individualmente.

7) Pintar o cabeçalho de azul

Range(“A1:D1”).Interior.ColorIndex = 23 é a instrução que passará ao código que queremos colocar a cor de índice 23 (azul escuro) no interior das células do cabeçalho da nossa tabela, ou seja, das células A1 até D1.
OBS: Como citado no vídeo, na segunda aba do arquivo teremos uma paleta de cores e seus índices, para que sirva de exemplo de aplicação e orientação.

8) Ordenar a tabela de acordo com a data mais antiga para mais nova

Como a gente não sabe exatamente como passar esse comando e não precisa diretamente gravar alguns comandos de cabeça, podemos usar a gravação de macro sempre que precisamos (na maioria dos casos quando não sabemos programar algo em VBA).
Para esse caso, de ordenar a tabela pela coluna de data, iremos gravar uma macro para auxiliar o nosso código, indo na guia Exibir > Macros > Gravar Macro… > OK. A partir daí, todos os passos que fizermos no Excel serão traduzidos pela macro.

Ao terminar os passos, vamos no mesmo local, e em Parar Gravação. Essa macro ficará gravada em um novo módulo (provavelmente Módulo 2 no VBA), como no nosso vídeo. Observe como ficará o código para ordenar a tabela de acordo com a data mais antiga para mais nova.

ActiveWorkbook.Worksheets("Primeira Aba").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Primeira Aba").Sort.SortFields.Add2 Key:=Range( _
    "A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
With ActiveWorkbook.Worksheets("Primeira Aba").Sort
    .SetRange Range("A2:D17")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
Após realizar esses passos, a nossa tabela ficará com a aparência fina como na imagem abaixo:
Classificar Dados

Classificar Dados

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um Minicurso Gratuito?


Quer participar do maior evento de Power BI da América Latina de forma 100% Online e Gratuita? Inscreva-se abaixo!