Como Criar um Formulário de Cadastro (UserForm) no Excel com VBA

Para criar um formulário de cadastro no Excel com VBA, abra o editor (Alt+F11), vá em Inserir > UserForm, arraste caixas de texto e um botão de comando da Caixa de Ferramentas para desenhar os campos, e no código do botão use Cells(linha;coluna).Value = TextBox1.Text para gravar cada campo preenchido numa nova linha da planilha.

Você já teve uma planilha de cadastro onde outras pessoas digitam diretamente nas células, e viu alguém apagar uma fórmula por engano, preencher a coluna errada, ou digitar um dado numa linha já ocupada por outro registro?

Sem uma interface própria para o cadastro, deixar a digitação direto na planilha significa que qualquer pessoa tem acesso a todas as fórmulas e dados ao mesmo tempo, aumentando o risco de erro e dificultando a validação de campos obrigatórios antes de salvar um registro novo.

Neste artigo iremos mostrar como criar um UserForm no Excel, adicionar campos de texto e um botão, e usar VBA para gravar os dados preenchidos numa nova linha da planilha, sempre abaixo do último registro existente.

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

O que é um UserForm e quando vale a pena usar

Um UserForm é uma janela própria, criada dentro do editor VBA, com campos como caixas de texto, rótulos e botões — parecida com um formulário de cadastro de qualquer sistema. Ele evita que quem preenche o cadastro tenha acesso direto às células da planilha, reduzindo erros de digitação em fórmulas e concentrando a entrada de dados numa interface mais simples e controlada.

Inserindo o UserForm no editor VBA

Com o editor VBA aberto (Alt+F11), clique com o botão direito sobre o nome do projeto no Project Explorer, escolha Inserir > UserForm. Uma janela em branco aparece, junto com a Caixa de Ferramentas — se ela não abrir automaticamente, vá em Exibir > Caixa de Ferramentas no menu do editor.

Adicionando os campos com a Caixa de Ferramentas

Na Caixa de Ferramentas, clique no ícone de Rótulo (Label) e desenhe um retângulo no formulário para o texto “Nome:”, depois clique no ícone de Caixa de Texto (TextBox) e desenhe o campo ao lado do rótulo, onde a pessoa vai digitar. Repita esse par de rótulo + caixa de texto para cada campo do cadastro — por exemplo, Nome, E-mail e Telefone — e finalize adicionando um Botão de Comando (CommandButton), que será o botão “Salvar”.

Nomeando os controles corretamente

Cada controle adicionado recebe um nome padrão (TextBox1, TextBox2, CommandButton1). Para um código mais organizado, selecione cada campo, abra a janela de Propriedades (tecla F4) e altere o valor de (Name) para algo descritivo, como txtNome, txtEmail e btnSalvar — isso deixa o código bem mais legível na hora de referenciar cada campo.

Encontrando a próxima linha vazia da planilha automaticamente

Antes de gravar um novo registro, o código precisa descobrir qual é a próxima linha livre na planilha, para não sobrescrever um cadastro já existente. A forma mais comum é usar Cells(Rows.Count;1).End(xlUp).Row + 1 — esse comando parte da última linha possível da planilha, sobe até encontrar a última célula preenchida na coluna A, e soma 1 para chegar na primeira linha realmente vazia.

Código do botão “Salvar”: gravando os dados na planilha

Dê um duplo clique no botão dentro do editor de UserForm para abrir automaticamente o evento de clique dele, e escreva o código de gravação:

Linha Código
1 Private Sub btnSalvar_Click()
2   Dim linha As Long
3   linha = Cells(Rows.Count;1).End(xlUp).Row + 1
4   Cells(linha;1).Value = txtNome.Text
5   Cells(linha;2).Value = txtEmail.Text
6   Cells(linha;3).Value = txtTelefone.Text
7   MsgBox “Cadastro salvo com sucesso!”
8 End Sub

Limpando o formulário depois de salvar

Para deixar o UserForm pronto para o próximo cadastro sem fechar a janela, adicione, logo antes do MsgBox, os comandos que apagam o conteúdo de cada caixa de texto: txtNome.Text = “”, txtEmail.Text = “” e txtTelefone.Text = “”, devolvendo o formulário ao estado em branco.

Exibindo o formulário com um botão na planilha

Para abrir o UserForm sem precisar entrar no editor VBA, crie uma macro simples num módulo comum: Sub AbrirCadastro(): UserForm1.Show: End Sub, e associe essa macro a um botão criado diretamente na planilha. Assim, quem for usar o cadastro só precisa clicar nesse botão para abrir a janela do formulário.

Validando campos obrigatórios antes de salvar

Para impedir um cadastro incompleto, adicione uma verificação no início do código do botão Salvar: If txtNome.Text = “” Then MsgBox “Preencha o nome”: Exit Sub — se o campo Nome estiver vazio, uma mensagem de aviso aparece e o Exit Sub interrompe a execução antes de gravar qualquer coisa na planilha.

Exemplo prático: resultado na planilha

Depois de preencher o formulário três vezes com dados diferentes, a planilha por trás do UserForm fica assim, cada envio numa nova linha, sem precisar digitar diretamente nas células:

Nome E-mail Telefone
Fernanda Alves fernanda@email.com (11) 98888-1234
Ricardo Nunes ricardo@email.com (21) 97777-5678
Patrícia Lima patricia@email.com (31) 96666-9012

Erros comuns

Um erro frequente é referenciar o nome padrão do controle (como TextBox1) no código depois de já ter renomeado o campo pela janela de Propriedades — o VBA aponta erro de “variável não definida” porque o nome antigo não existe mais. Outro erro comum é esquecer o Private Sub gerado automaticamente ao dar duplo clique no botão, e criar um segundo procedimento manualmente com o mesmo nome, o que gera conflito de nomes duplicados dentro do mesmo formulário.

Disponibilidade

UserForm é um recurso do VBA disponível no Excel para Windows e Mac desde versões antigas (2007 em diante, com pequenas diferenças de interface entre elas). O Excel Online e o Google Sheets não suportam UserForm nem VBA — no Google Sheets, o equivalente mais próximo seria construir uma interface com Apps Script e HTML Service.

Perguntas frequentes

Preciso saber programar do zero para criar um UserForm?

Não. Desenhar os campos (rótulos, caixas de texto, botão) é uma tarefa visual de arrastar e soltar na Caixa de Ferramentas; só o código do botão Salvar exige escrever algumas linhas simples de VBA, como as mostradas neste artigo.

Como faço o formulário abrir automaticamente quando o arquivo é aberto?

Adicione o comando UserForm1.Show dentro do evento Workbook_Open, localizado no módulo “Esta_Pasta_de_Trabalho” (ThisWorkbook) no Project Explorer — assim o formulário aparece assim que o arquivo é aberto, sem precisar clicar em nenhum botão.

Dá para usar caixas de seleção (ComboBox) em vez de caixa de texto livre?

Sim, e é recomendado para campos com opções fixas, como Estado ou Categoria — a ComboBox reduz erros de digitação, já que a pessoa escolhe de uma lista pré-definida em vez de digitar o valor livremente.

Veja também: Como Fazer uma Barra de Progresso no Excel com VBA e Botão de Controle de Formulário no Excel.

Compartilhe ou Comente

Se você curtiu esse artigo aonde mostramos como criar um formulário de cadastro (UserForm) no Excel com VBA, desde o desenho dos campos até o código que grava os dados numa nova linha da planilha, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.

Sua planilha de cadastro ainda é preenchida direto nas células? Vai criar um UserForm para reduzir os erros de digitação da sua equipe? Conta para nós nos comentários!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *