Cadastro Excel VBA – Formulário inserir e limpar automaticamente
Neste modelo de cadastro criado em Excel VBA, você tem um código que facilita muito o trabalho de criação de formulários.
No formulário você cria os objetos, TextBox, RadioButton, ComboBox, etc, e com uma simples configuração o sistema já está pronto par ainserir estes dados na sua planilha de cadastro.
Nesta primeira versão tenho apenas os botões Inserir e Limpar e o formulário é apenas um exemplo simples, porém com funções VBA muito úteis para a criação de qualquer tipo de formulário.
Vejamos como funciona:
Como criar seu formulário VBA
- Defina um nome para a sua pasta de trabalho Excel e salve ele com a extensão XLSM, é necessário que seja XLSM porque assim a planilha estará habilitada para macros, caso contrário todos os códigos VBA serão apagados.
- Defina uma planilha da sua pasta de trabalho e altere o nome conforme a sua necessidade, por exemplo Cadastro.
- Nesta planilha crie um cabeçalho par aos campos que serão salvos pelo seu formulário. No nosso exemplo temos os campos Nome, Endereço, Número, Cidade, UF e Sexo.
- Abra o editor de VBA. Caso não esteja habilitado, veja aqui como habilitar: Habilitando a guia desenvolvedor e copiando procedimentos VBA da internet.
- Na sua guia desenvolvedor localize a sua pasta de trabalho, destacada ao lado esquerdo.
- Agora iremos criar o formulário de cadastro. Clique na guia Inserir e selecione UserForm. O sistema irá criar uma pasta chamada Formulários e inserir um formulário VBA.
- Clique duas vezes sobre a pasta Formulários e depois clique duas vezes sobre o formulário que acabou de criar.
- Clique no botão Caixa de Ferramentas.
- O VBA irá abrir uma paleta de componentes que você pode utilizar no seu formulário.
- Pare com o mouse sobre o componente para ver os seus nomes.
- Clique sobre o componente Rótulo e arraste até o seu formulário.
- Clique sobre o componente com o botão direito e clique na opção Propriedades.
- Procure a propriedade Caption e altere o nome para Nome e ajuste o tamanho do componente.
- Repita a operação para incluir os campos Endereço, N.º, Cidade e UF e disponha os dados conforme a imagem.
- Procure o objeto Caixa de Texto e arraste para o formulário, ao lado de Nome.
- Clique sobre o objeto arrastado e altere a propriedade Tag para a coluna da sua planilha criada no início que armazenará o nome digitado em seu cadastro. No caso a coluna escolhida foi A, então preencha o campo Tag com A.
- Repita a operação para os campos Endereço, N.º e Cidade, alterando a propriedade Tag de cada componente para B, C e D respectivamente, conforme as colunas que armazenarão estas informações.
- Volte para a sua planilha clicando no ícone do Excel na barra de tarefas do Windows e em outra planilha crie uma lista com as UFs.
- Selecione a lista e altere o nome do intervalo para UF.
- Volte para o Editor do VBA e insira uma Caixa de Combinação.
- Altere a propriedade RowSource para UF, isto fará com que a caixa de combinação mostre os estados brasileiros quando o formulário estiver sendo executado.
- Altere a propriedade Tag da caixa de combinação para E, coluna que terá esta informação.
- Selecione e insira o objeto Quadro. Altere a propriedade Caption para Sexo.
- Selecione e arraste para dentro do quadro dois objetos Botão de Opção. Altere a propriedade Caption dos dois para Feminino e Masculino respectivamente.
- Altere a propriedade Tag dos dois botões de opção para F. Esta coluna guardará o sexo.
- Insira dois botões e altere a propriedade Caption dos dois para Novo e Inserir respectivamente.
- Clique com o botão direito sobre o formulário e selecione a opção Exibir código. Copie e cole o código abaixo no formulário. Este código é responsável pelo preenchimento das informações na planilha.
'Identifica o tipo do objeto e insere se for um dos tipos definidos Private Sub lsInserir(ByRef lTextBox As Variant, ByVal lSheet As String, ByVal lColunaCodigo As Long, ByVal lUltimaLinha As Long) If (TypeOf lTextBox Is MSForms.TextBox) Or (TypeOf lTextBox Is MSForms.ComboBox) Then Sheets(lSheet).Range(lTextBox.Tag & lUltimaLinha).Value = lTextBox.Text Else If TypeOf lTextBox Is MSForms.OptionButton Then If lTextBox.Value = True Then Sheets(lSheet).Range(lTextBox.Tag & lUltimaLinha).Value = lTextBox.Caption End If End If End If End Sub 'Loop por todos os componentes da tela 'formulario = Nome do UserForm atual 'lSheet = Nome da planilha aonde irão ser inseridos os valores 'lColunaCodigo = Coluna de referência para a inserção dos dados Public Function lsInserirTextBox(formulario As UserForm, ByVal lSheet As String, ByVal lColunaCodigo As Long) Dim controle As Control Dim lUltimaLinhaAtiva As Long lUltimaLinhaAtiva = Worksheets(lSheet).Cells(Worksheets(lSheet).Rows.Count, lColunaCodigo).End(xlUp).Row + 1 For Each controle In formulario.Controls lsInserir controle, lSheet, lColunaCodigo, lUltimaLinhaAtiva Next End Function 'Limpa todos os objetos TextBox da tela Public Function lsLimparTextBox(formulario As UserForm) Dim controle As Control For Each controle In formulario.Controls If TypeOf controle Is MSForms.TextBox Then controle.Text = "" End If Next End Function
28. Clique duas vezes sobre o botão Novo. Será criado o método Click para este botão. Cole entre o sub e o end sub o código abaixo, que irá chamar o procedimento para limpar o formulário. Não coloque a primeira e a última linha, que já estão preenchidas.
'Aciona o botão de limpar Private Sub CommandButton2_Click() lsLimparTextBox frmCadastro TextBox1.SetFocus End Sub
29. Clique duas vezes sobre o botão Inserir. Da mesma forma que o botão Novo será criado o método Click. Cole o código abaixo:
'Aciona o botão de inserir Private Sub CommandButton1_Click() lsInserirTextBox frmCadastro, "Cadastro", 1 lsLimparTextBox frmCadastro TextBox1.SetFocus End Sub
30. Pressione o botão F5 para executar o formulário.
Se quiser baixe o nosso exemplo criado e clique no botão Formulário para testar o nosso projeto. Veja que se você incluir outros objetos Caixa de combinação, Caixa de texto ou Botão de opção e configurar a coluna no campo Tag destes objetos, o sistema automaticamente irá preencher estas colunas com esta informação, poupando muito código fonte VBA, tempo e depuração para validar o formulário.
Para testar, basta preencher os dados e clicar no botão Inserir, veja que automaticamente os dados são levados do formulário para a planilha.
Da mesma forma para limpar e começar um novo formulário clique no botão Novo e os dados serão automaticamente limpos.
Brinque com o formulário, incluindo novos campos com e indicando novas colunas para preencher no campo Tag. Veja como pode ser útil este exemplo de formulário.
Planilha de Pequenas Empresas
Você tem uma pequena empresa e precisa de um controle simples e profissional?
Conheça a nossa planilha de Vendas e Estoque.
Funcionalidades
- Cadastro de clientes
- Configurações
- Fornecedores
- Metas Vendas
- Produtos
- Vendedores
- Entrada de produto
- Saída de estoque
- Fluxo de caixa
- Vendas
Relatórios
- Comissões
- Estoque
- Fluxo de caixa mensal
- Fluxo de caixa Perda/Ganho
- Vendas por canal
- Vendas por dia
- Vendas por mês
- Vendas por produto
Dashboards
- Dashboard de Vendas
- Dashboard de Fluxo de Caixa
Ferramentas
- Cálculo de preço do produto
- Planilha de orçamento para o cliente
São mais de 20 funcionalidades em uma solução completa para o gerenciamento da sua empresa, clique abaixo para conhecer mais e comprar a planilha.