Blog

Postado em em 23 de maio de 2019

Como criar formulário no Excel – Criando UserForm no VBA – 5/5

Caso prefira esse conteúdo no formato de vídeo-aula clique nesse link!

Para baixar a planilha utilizada nessa aula clique aqui!

O que é um formulário?

Formulário é uma opção do Excel que nos possibilita criar uma nova interface, dando uma cara de programa à planilha, diferente do que estamos habituados quando utilizamos o Excel. Iremos utilizar uma tela que chamaremos de formulário que se assemelha a um programa que efetua um cadastramento de um funcionário.

Esse formulário é como um comum em papel em que você preenche para que alguém possa ter essas informações gravadas, aqui irá funcionar da mesma forma, os dados serão preenchidos e serão salvos dentro do Excel.

Quando utilizar o Formulário?

O formulário é útil sempre que o usuário necessite de uma entrada ou pesquisa de dados de terceiros e não tem a intenção de que eles possam ver ou modificar todos os dados dentro do Excel. Portanto, os dados de busca e navegação serão limitados pelo programador do código.

O formulário pode ser utilizado também para facilitar a entrada desses dados sem que o usuário tenha que escolher célula por célula onde vai inserir cada um desses dados, portanto é uma outra facilidade que o formulário trás. Além de ficar mais agradável esteticamente acaba sendo mais eficiente na hora de utilizar o código programado através do formulário.

Neste caso iremos construir um formulário para obter algumas informações como: nome, sexo, área, CPF e salário dos funcionários. Portanto, a partir de duas macros atribuídas a dois botões de Criar e Excluir conseguiremos criar um novo cadastro e excluir um cadastro já existente.

Podemos observar que essa janela que é aberta dentro do Excel já não tem o aspecto de Excel e sim de um programa para cadastro. Então, basta o usuário colocar as informações e pressionar OK que esses dados serão gravados dentro do Excel de uma forma mais prática.

Como utilizar o Formulário?

Essa é a continuação do post de UserFrom. É o quinto e último post de cinco da sequência.

Já temos a parte da interface do formulário completa, com todas as caixas de texto e todas as opções para cadastro de funcionário. Nesta aula vamos aprender como formatar os dados que serão inseridos dentro da planilha após o cadastro. Até o momento estava sendo utilizada uma formatação de tabela, no entanto vamos remover essa formatação e mostrar como estão sendo cadastrados nossos dados na planilha.

Esses são nossos dados sem formatação, agora vamos adicionar mais um funcionário para verificar como o Excel está cadastrando cada informação.

Ao pressionar OK esse funcionário será cadastrado e podemos verificar como os dados estão sendo armazenados na nossa planilha.

Nosso novo funcionário foi adicionado a linha 4, podemos observar que não há formatação de alinhamento, não temos a formatação do CPF, formatação do salário e não temos as bordas. Nesta aula vamos aprender a colocar essas formatações utilizando o VBA.

Para que possamos escrever o código com todas essas informações temos que entrar no ambiente VBA (pressionando as teclas ALT + F11), indo até o nosso formulário e dando um duplo clique na nossa caixa de OK, que foi dentro dela que criamos o código abaixo.

Esse é o código que temos até o momento para o cadastro do funcionário, ou seja, neste código estamos atribuindo os valores que foram preenchidos no formulário as colunas específicas de cada um dos dados.

Para escrevermos esse código com formatação, colocar em ordem alfabética, acrescentar as bordas… Não é necessário decorar o código que faz isso tudo, pois o Excel nos permite utilizar a ferramenta de Gravar Macro para gravar tudo o que foi feito em forma de código. Desta maneira podemos aprender como escrever cada uma das operações e então utilizá-las dentro da nossa planilha.

Para iniciar vamos começar a gravar a macro, para isso temos que ir até a guia Desenvolvedor e selecionar a opção Gravar Macro ou na guia Exibir em Macros e Gravar Macro.

Feito isso será aberta uma nova janela para preenchermos algumas informações sobre a macro. No nosso caso, vamos preencher somente o nome da macro.

Ao clicar no botão OK tudo o que for feito no Excel será gravado até que o usuário clique em Parar Gravação (que é a opção que aparece ao clicar em gravar macro).

Se considerarmos que a nossa primeira linha de dados já possui toda a formatação que queremos, vamos gravar a macro copiando (atalho CTRL + C) a primeira linha da planilha.

Em seguida vamos selecionar todos os dados da nossa tabela (atalho CTRL + SHIFT + SETA PARA BAIXO). Desta forma o Excel irá selecionar da primeira linha até a última linha com conteúdo da nossa planilha.

Feita a seleção, vamos até a guia Página Inicial e vamos selecionar o menu Colar e por fim selecionar a opção de Colar Formatação.

Para finalizar e retirar a seleção de cópia da primeira linha vamos pressionar a tecla ESC e parar a gravação da macro (clicar na mesma opção que utilizamos para começar a gravação de macro). Desta forma teremos os formatos da primeira linha copiado para toda a planilha, ou seja, todos os nossos dados ficarão formatados corretamente inclusive o dado que acabou de ser adicionado.

Agora podemos voltar ao ambiente VBA e no menu a esquerda vamos ir à pasta de módulos e selecionar o último módulo, que foi o que a gravação de macro acabou de criar.

Por fim, temos o seguinte código que foi criado com a gravação da macro:

Como mencionado anteriormente, não precisamos decorar os códigos que fazem coisas muito específicas no Excel, basta gravar a macro que o próprio VBA escreve esse código mais específico.

Vamos copiar esse código e colar ao final do nosso código que coloca todos os dados do formulário dentro da planilha.

Para deixar os cadastros dos funcionários mais organizados precisamos para finalizar apenas ordená-los em ordem alfabética. Para fazer isso vamos repetir o procedimento de gravar uma macro, mas agora nossa ação será a organização dos cadastros em ordem alfabética.

Vamos até a opção Gravar Macro novamente, vamos nomear essa macro como ordenar_funcionarios. Inicialmente vamos selecionar as colunas de A até E.

Feito a seleção de todas as colunas que serão utilizadas, o próximo passo é selecionar a guia Dados e em seguida a opção Classificar.

Ao selecionar essa opção uma nova janela será aberta para podermos escolher a forma com que vamos classificar esses dados.

Nesta janela basta escolhermos para classificar por Nome, e pressionar OK. Feito isso nossa tabela será organizada em ordem alfabética e podemos parar a gravação da macro.

É possível observar que nossos funcionários estão organizados em ordem alfabética. Novamente, para ver como é escrito o código, vamos voltar ao ambiente VBA e abrir o último módulo que foi criado.

Neste caso a gravação ocorreu no módulo 2 também, juntamente com a primeira gravação que foi feita. A quantidade de macros em um mesmo módulo não influencia a execução delas, elas irão funcionar independentemente caso não haja ligação entre elas normalmente.

Da mesma forma como fizemos com o código anterior vamos copiar e colar dentro do nosso código principal.

Nessa gravação de macro vamos precisar nos atentar a alguns pontos. Podemos notar que em dois pontos desse código temos uma limitação que é “A2:A4” e “A1:E4”, ou seja, como temos apenas 4 linhas o Excel pegou apenas esse intervalo para fazer nossa organização em ordem alfabética. Como no nosso código já temos uma variável que pega o valor da última linha preenchida da nossa tabela (variável linha). Logo, vamos substituir essas duas opções pelas duas a seguir, respectivamente: “A2:A” & linha e “A1:E” & linha. Utilizamos o & para juntar texto com número. Com isso, o intervalo que o código vai ler para ordenar alfabeticamente começa nas primeiras linhas e vai até a última linha preenchida da tabela, independente do número de linhas que a nossa tabela tiver.

Para deixar nosso formulário ainda mais completo vamos colocar uma opção para fechar o formulário após um funcionário ser cadastrado e mostrar uma caixa com o nome e área do funcionário que acabou de ser cadastrado.

Para isso vamos acrescentar um pequeno código ao final do que já temos para finalizar.

Neste código, estamos atribuindo tanto o nome do funcionário quanto sua área a duas variáveis (variável nome e área), em seguida estamos descarregando (Unload) o formulário, ou seja, estamos fechando o formulário. Por fim, estamos criando uma caixa de mensagem (MsgBox)falando que o funcionário foi cadastrado em uma área específica.

Vamos agora efetuar o cadastro de um novo cliente para verificar a funcionalidade de tudo que foi feito. Para isso, vamos voltar ao Excel e clicar no botão Novo Funcionário.

Ao pressionar OK temos o seguinte resultado.

Temos que o funcionário em questão foi adicionado na planilha, está com os dados formatados corretamente e já está organizado em ordem alfabética. Podemos notar que a caixa de mensagem apareceu corretamente com o nome do funcionário e a área cadastrada.

Feito isso nosso formulário está completo e pronto para ser utilizado.

Encerramos aqui a série dos 5 posts para a criação do formulário passo a passo. Neste ponto o usuário deve ser capaz de construir um formulário do 0 com todas as opções que foram abordadas e poderá também explorar as outras opções para conhecimento pessoal.

EXTRA: Podemos observar que a coluna de CPF não ficou formatada quando colocamos os números todos juntos, somente quando separamos manualmente. É possível criar uma “máscara” para toda vez que digitarmos os 11 números do CPF ele ficar automaticamente formatado. Para isso basta selecionar o primeiro CPF e selecionar a opção Mais Formatos de Número dentro da caixa de formatação.

Uma nova janela será aberta. Dentro dessa janela vamos selecionar a opção Personalizado.

Dentro da guia personalizado basta escrever manualmente abaixo do nome Tipo o seguinte código: ###”.”###”.”###-##

Desta forma o CPF ficará com uma máscara e toda vez que um CPF for escrito ele irá separar da forma que foi escrito. É possível ver essa separação na parte de exemplo que é exatamente como é a formatação de um CPF.

Para continuar recebendo conteúdo sobre esse e outros assuntos de Excel e VBA, acompanhe os nossos posts.



Quer aprender tudo de Excel para se tornar o destaque de qualquer empresa?