Como criar formulário no Excel para trabalhar com dados

Neste artigo você vai aprender como criar formulário no Excel para editar base de dados, de forma rápida e simples com apenas alguns passos.

Gerenciar bases de dados no Excel pode ser desafiador, especialmente quando erros de cadastro ocorrem ou atualizações são necessárias.

Formulários, sejam nativos do Excel ou personalizados com VBA, tornam a interface mais amigável, facilitam a busca em grandes bases e garantem maior confiabilidade.

Neste artigo, exploramos como usar dois tipos de formulário. O formulário nativo do Excel, para inserir, editar, excluir e filtrar dados; e também UserForm, com VBA, para edições mais avançadas, como cadastro de funcionários.

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Por que usar formulários no Excel?

Como os formulários ajudam no gerenciamento de dados?
Além de serem mais profissionais, formulários simplificam a interação com planilhas e reduzem erros.

Suas principais vantagens incluem:

  • Interface amigável: Facilita a inserção e edição de dados.
  • Busca eficiente: Ideal para localizar informações em bases grandes.
  • Confiabilidade: Validações evitam erros de preenchimento.
  • Profissionalismo: Apresenta dados de forma organizada e visualmente atraente.

Como ativar e usar o formulário nativo do Excel?

O Excel possui um formulário nativo que não exige programação, ideal para gerenciar listas simples, como tarefas ou contatos. Para ativá-lo:

  1. Formate a planilha como tabela: Selecione os dados e use Ctrl + Shift + T (ou Ctrl + T). Isso organiza os dados, reduz erros e melhora a compatibilidade com o formulário.
  2. Adicione o comando de formulário: No Menu de Acesso Rápido, clique na seta > Mais Comandos > Todos os Comandos > selecione Formulário (ícone cinza) > Adicionar > OK.
  3. Use o formulário: Clique no ícone do formulário no Menu de Acesso Rápido para abrir uma interface com os campos da sua tabela.

Como gerenciar dados com o formulário nativo?

O formulário nativo oferece várias funções:

  • Inserir dados: Clique em "Novo", preencha campos (ex.: "Tarefa: Gravar Aula", "Responsável: Fred", "Status: Não Iniciado") e clique em "Novo" para adicionar à tabela.
  • Editar registros: Navegue com as setas, altere um campo (ex.: mude "Status" de "Em Andamento" para "Concluído") e clique em "Novo" para salvar.
  • Excluir dados: Selecione um registro (ex.: "Organização de Recursos"), clique em "Excluir" e confirme para removê-lo.
  • Filtrar dados: Use "Critérios" para buscar registros específicos (ex.: tarefas com status "Não Iniciado") e navegue com "Localizar Próxima" ou "Localizar Anterior".
FunçãoDescrição
InserirAdiciona novas linhas à tabela
EditarAtualiza dados existentes
ExcluirRemove registros com confirmação
FiltrarBusca registros por critérios específicos

Como criar UserForm para editar bases de dados com formulário?

Para conseguir editar as bases de dados, deveremos criar um código que seja associado a um formulário específico no ambiente do VBA. No nosso exemplo, temos uma empresa com cadastro de funcionários feito numa base no ambiente do Excel, com nome, sexo, área, CPF e salário (em 1).

Criar Formulario em Planilha - Editar bases de dados
Criar Formulario em Planilha

Lembrando que no nosso minicurso gratuito ensinamos como criar formulário no Excel e nesse post iremos apenas apresentar o código por trás dele para fazer as edições nessa base. Para criá-lo, precisamos entrar no ambiente do VBA (Alt + F11 ou Alt + Fn + F11), onde temos o UserForm pronto.

O formulário do nosso exemplo é o userform_edicao. Iremos então, no ambiente do VBA, clicar com o botão direito do mouse nele (em 2 na imagem acima) e em seguida em Exibir código (em 3 na imagem acima), para ver o código por trás dele.

Em primeiro lugar, queremos que o UserForm, ao ser aberto, carregue as informações da tabela de dados. Então, devemos passar comandos para esse UserForm fazer esse carregamento ao ser aberto.

Para isso, devemos selecionar no VBA que objeto queremos modificar e que ação faremos nele para disparar o código. No caso, queremos que, quando o userform_edicao (nosso UserForm) inicie (Initialize), carregue as informações. Vamos selecioná-los em 1 (UserForm) e em 2 (Initialize).

Editando Bases de Dados com Formulario no Excel Imagem2 e1596486493820

Ao selecionar os que queremos, ficará assim:

Editando Bases de Dados com Formulario no Excel Imagem3

Automaticamente o VBA começará a escrever uma “Private Sub UserForm_Initialize()” (em branco inicialmente). Nosso código ficará da seguinte maneira para ele carregar as informações:

Editando Bases de Dados com Formulario no Excel Imagem4

Onde:

Private Sub UserForm_Initialize() é a instrução que inicia nosso código de “início” do UserForm.

linha = Sheets("Cadastro").Range("A1").End(xlDown).Row é a instrução que vai nos retornar, na aba “Cadastro”, a partir da célula A1, a última linha preenchida da tabela de informações, e será gravada numa variável. Ela vai ser a nossa linha limite, que será atualizada cada vez que abrirmos o UserForm, garantindo que qualquer nova linha inserida será carregada pelo código.

caixa_nome.RowSource = "Cadastro!A2:A" & linha é a instrução que vai passar para a caixa_nome (lista suspensa de Nomes dos funcionários) que sua fonte de dados vai da célula A2 até a célula na coluna A correspondente à última linha preenchida achada com a instrução anterior (variável linha).

caixa_cpf.RowSource = "Cadastro!D2:D" & linha é a instrução que vai passar para a caixa_cpf (lista suspensa de CPFs dos funcionários) que sua fonte de dados vai da célula D2 (coluna D e linha 2) até a célula na coluna D correspondente à última linha preenchida achada com a segunda instrução (variável linha). Lembrando que só existirá CPF se existir um nome cadastrado no sistema para um funcionário, então podemos usar a mesma variável "linha" no último comando e nesse.

Ícone VBAVBA Impressionador

Como automatizar praticamente qualquer tarefa repetitiva que você faça dentro do Excel. Aprenda a criar integrações do Excel com o PowerPoint, Word, Outlook e muito mais. Aprenda a criar automações para resolver tudo com apenas um clique em um botão. Tudo isso com uma única linguagem que junta todos esses programas.

Começar agoraSeta para a direita
Fundo VBATelas VBA

linha = Sheets("Fonte").Range("C2").End(xlDown).Row é a instrução que vai nos dizer, na aba “Fonte”, quantos tipos teremos de opções para serem alterados no formulário de edição. Ela vai nos retornar a última linha preenchida dessa lista de tipos criada na tabela “Fonte”, e será armazenada na variável linha.

Observe que essa lista de tipos na aba “Fonte” (imagem abaixo) vai coincidir com as colunas da nossa tabela de dados cadastrados (Área, CPF, Nome, Salário, Sexo).

Editando Bases de Dados com Formulario no Excel Imagem5

caixa_tipo.RowSource = "Fonte!C3:C" & linha é instrução que vai passar para a caixa_tipo (lista de tipos de dados na aba “Fonte”) que sua fonte de dados vai da célula C3 (coluna C e linha 3) até a célula na coluna C correspondente à última linha preenchida (linha 7, no exemplo) da lista de tipos, achada com a última instrução.

End Sub é a instrução que representa o fim dessa subrotina de comandos

Até agora carregamos as informações da tabela de cadastro e garantimos que ela será atualizada toda vez que for aberto o formulario na planilha. Vamos para o código de edição de base de dados.

Editando Bases de Dados com Formulario no Excel Imagem6

Para editar informações, devemos disparar o código que veremos a seguir através do clique no botão OK (em verde, acima). Para escrever esse código, devemos selecionar nas listas suspensas o objeto (botao_ok) e a ação de clique (Click), como observado na imagem abaixo.

Editando Bases de Dados com Formulario no Excel Imagem2 e1596486493820
UserForm VBA - Initialize (Figura 1)

O código que rodará ao clicar no botão "OK" do formulário será o seguinte (Blocos 1, 2 e 3):

Formulario Excel VBA - Editar bases de dados

Ao longo do código temos várias estruturas condicionais (If). Ou seja, teremos condições a serem atendidas para rodar o código ao fazer uma edição, para garantir que temos as informações suficientes para identificar um funcionário e editar seus dados.

Vamos para a explicação do Bloco 1 do código:

Codigo
Private Sub botao_ok_Click()

If caixa_nome.Value <> "" Then
    nome = caixa_nome.Value
    linha = Sheets("Cadastro").Cells.Find(nome).Row

ElseIf caixa_cpf.Value <> "" Then
    cpf = caixa_cpf.Value
    linha = Sheets("Cadastro").Cells.Find(cpf).Row

Else
    MsgBox ("Preencher o Nome ou o CPF!")
    Exit Sub

End If

Leitura Bloco 1:

Se a caixa de nome (caixa_nome) não estiver vazia (for diferente de vazio), então, o que tiver escrito na caixa de nome será registrado na variável “nome”, e procuraremos a célula em que estiver escrito o que estará na variável "nome". Ao encontrar, guardaremos a linha da célula achada na variável “linha”, que corresponde àquele nome na base de dados.

Se a caixa de CPF (caixa_cpf) não estiver vazia (for diferente de vazio), então, o que tiver escrito na caixa de CPF será registrado na variável “cpf”, e procuraremos a célula em que estiver escrito esse CPF escrito na caixa de CPF. Ao encontrar, guardaremos a linha da célula achada na variável “linha” que corresponde àquele CPF na base de dados.

Se nome nem CPF estiverem preenchidos (ambos forem iguais a vazio), teremos uma mensagem alertando para “Preencher o Nome ou o CPF!” na tela e o código será abortado. Ou seja, o comando Exit Sub irá dizer para o código parar nesse ponto (não irá ler o que estiver escrito abaixo), mas dará a opção para o usuário preencher novas informações no formulário sem fechá-lo.

Se tudo ocorrer da forma ideal teremos a linha onde deveremos fazer a edição. Vamos para o Bloco 2.

Codigo

If caixa_tipo.Value = "Nome" Then
    coluna = 1

ElseIf caixa_tipo.Value = "Sexo" Then
    coluna = 2

ElseIf caixa_tipo.Value = "Área" Then
    coluna = 3

ElseIf caixa_tipo.Value = "CPF" Then
    coluna = 4

ElseIf caixa_tipo.Value = "Salário" Then
    coluna = 5

Else
    MsgBox ("Preencher o Tipo!")
    Exit Sub

End If

Leitura Bloco 2:

O valor da caixa_tipo é o tipo de dado que o usuário do formulário seleciona e quer editar. Ele que comandará em que coluna faremos a alteração na tabela de cadastro de funcionários.

Se na caixa_tipo estiver selecionado “Nome”, guardaremos a coluna 1 na variável coluna. Se estiver selecionado “Sexo”, a variável receberá o valor 2. Se “Área” estiver selecionada, receberá o valor 3. Se  “CPF” estiver selecionado, receberá o valor 4. E, se “Salário” estiver selecionado, o valor 5.

Se essa caixa estiver vazia, ou seja, o usuário não selecionar nada nela (lista), será exibida uma mensagem para “Preencher o Tipo!” na tela, e o código será abortado. Por consequência, ele não continuará, mas as informações ficam carregadas no formulário e podem ser aproveitadas.

Assim, se tudo ocorrer bem, saberemos em que coluna fazer a edição, de acordo com o número que a variável coluna receberá.

Tudo correndo bem, até aqui teremos linha e coluna para fazer a modificação desejada. A linha pela pesquisa de nome ou CPF, e a coluna pelo tipo a ser alterado. Vamos agora para o Bloco 3.

Codigo
If caixa_valor.Value <> "" Then
    Sheets("Cadastro").Cells(linha, coluna).Value = caixa_valor.Value

Else
    MsgBox ("Preencher o novo valor!")
    Exit Sub

End If

Unload userform_edicao

End Sub

Leitura Bloco 3:

Se a caixa_valor estiver preenchida com algo (for diferente de vazio), a célula com endereço dado a partir das variáveis (linha e coluna) encontradas nos blocos 1 e 2 receberá o que for digitado nessa caixa_valor. Em seguida irá descarregar o formulário (apagar as informações selecionadas e escritas nele), porque já fez a edição da forma correta.

Caso não tenha nada escrito (caixa_valor estiver vazia), o programa exibirá uma mensagem de “Preencher o novo valor!”, e abortará o código. Ainda dá a opção do usuário digitar algo nesse campo com as informações o formulário ainda carregadas.

Se tudo for preenchido corretamente e ocorrer bem, com linha e coluna conhecidas, teremos uma célula específica para fazer a edição, e poderemos inserir o que for digitado na caixa_valor nessa célula alvo e o formulário será descarregado. Finalmente vamos para o Bloco 4.

VBA
<strong>Private Sub botao_x_Click()</strong>

<strong>Unload userform_edicao</strong>

<strong>End Sub</strong>

Leitura Bloco 4:

O bloco 4 diz respeito ao clique no X do formulário. No código temos o Unload do userform_edicao. Isso significa simplesmente o comando para o VBA descarregar o formulário e as informações nele contidas. Ou seja, irá fechá-lo e apagará as informações selecionadas ou escritas no formulário. Caso queira fazer uma outra edição, será necessário, então, abrir e digitar tudo outra vez.

Assim, conseguimos fazer um código para editar bases de dados de cadastro de funcionários de uma empresa. Ele funciona com condições que devem ser respeitadas para fazer a atualização, garantindo uma maior confiabilidade.

Você pode ter exatamente essa necessidade ou alguma aplicação parecida que seja composta por um cadastro que possa ter informações a serem editadas/atualizadas. Esperamos que seja bastante útil para você!

Qual é a melhor opção: formulário nativo ou UserForm?

A pergunta deve ser: quando usar cada tipo de formulário? O formulário nativo e o UserForm com VBA têm propósitos distintos:

RecursoFormulário NativoUserForm com VBA
FacilidadeSem programaçãoRequer VBA
PersonalizaçãoLimitadaAlta, com validações
Ideal paraListas simples (ex.: tarefas)Cadastros complexos (ex.: funcionários)
ValidaçõesBásicasAvançadas (ex.: condicionais)

O formulário nativo é perfeito para tarefas rápidas e planilhas menores, enquanto o UserForm é ideal para cenários corporativos que exigem maior controle.

Conclusão

Formulários no Excel transformam o gerenciamento de dados, seja com a praticidade do formulário nativo ou a flexibilidade de um UserForm com VBA. O formulário nativo permite inserir, editar, excluir e filtrar dados sem programação, enquanto o UserForm oferece validações avançadas para cadastros complexos. Use essas ferramentas para organizar planilhas e impressionar no trabalho com soluções profissionais e eficientes!

Aprenda mais sobre Excel com mais cursos e guias como este em nosso blog!

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

Hashtag Treinamentos

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


Quer aprender mais sobre VBA com um minicurso básico gratuito?