Aprenda a criar um formulário de cadastro com VBA

Aprenda a fazer um Formulário de Cadastro com VBA

Olá amigos,

Sabemos que nem todo mundo tem o mesmo conhecimento de Excel, seja para realização das tarefas pessoais ou no cotidiano corporativo.



Muitas vezes necessitamos que os dados inseridos em uma planilha sigam um determinado padrão, e para isso temos de criar um formulário de cadastro, fazendo o que o usuário digite os dados nos campos personalizados deste cadastro, e assim todos estes dados são registrados em sua ordem correta em seus respectivos locais e formatos.

Recomendo também…
LINK – Aprendendo como enviar Email com VBA usando o Excel

divider

Com os formulários, você padroniza seus cadastros!

Os Formulários de Cadastro são utilizados há muito tempo para realização desses tipos de tarefas, facilitando assim a vida de quem recebe as planilhas e de quem manipula os dados,  porém nem todas as pessoas possuem conhecimento necessário para criação desses formulários com VBA, por isso o intuito desta postagem é fazer com que você saiba como dar os primeiros passos e criar um formulário de cadastro.

Antes de mais nada…

Abra sua planilha, vá até o console de programação do VBA, com as teclas (ALT+F11) e insira em sua planilha um novo módulo e também um novo formulário, conforme a imagem abaixo.

aprendendo-a-criar-um-formulário-de-cadastro-com-vba

Habilite a Toolbox ou Caixa de Ferramentas de Formulário

Caso não saiba como habilitar a Caixa de Ferramentas ou Toolbox, siga os passos abaixo:

  1. Clique no Menu View, ou Exibir.
  2. Clique na opção Toolbox ou Caixa de Ferramentas conforme a imagem abaixo.

como-habilitar-a-janela-de-ferramentas-do-VBA

Componentes que utilizaremos da caixa de ferramentas…

Agora é necessário inserir no formulário os componentes…
Componentes: Label,  Combobox e um Botão de Comando.

aprendendo-a-criar-um-formulário-de-cadastro-com-vba-formulario-caixa-de-ferramentas-vba

Atenção!

É muito importante que sejam seguidas todos os passos de para que você possa realizar a tarefa corretamente e assim tenha o funcionamento correto do cadastro.

divider

Construindo o Layout do Formulário

1° Passo – Criação do Formulário e Layout

Abaixo temos uma proposta de formulário onde iremos inserir 3 Combobox, 3 Labels e um Botão de Comando.

aprendendo-a-criar-um-formulário-de-cadastro-com-vba-formulario-email-combobox-label

Após realizar a montagem do layout do formulário é necessário ajustar o nome de todos os campos, ter uma padronização do nome dos Campos facilita muito o seu desenvolvimento de código e também a identificação de cada componente quando necessário.

Exemplo:Ao invés de usar CommandButton1 utilize BtCadastro ou Bt_Cadastro.

Para isso clique no componente e posteriormente na janela de propriedades (F4) na propriedade (NAME) e altere para o nome que preferir.

É importante frisar que é ideal que você crie um nome de campo que possa lembrar posteriormente e que tenha um padrão lógico e de sintaxe também.

divider

2° Passo – Criação do local onde os dados serão armazenados. (BD)

Crie uma sheet crie os cabeçalhos dos campos, no caso o título deverá ficar na linha 1 conforme a imagem abaixo.
Como é possível verificar na imagem abaixo temos apenas 1 linha preenchida, que é a linha do título.

aprendendo-a-criar-um-formulário-de-cadastro-com-vba-criar-base-de-dados
divider

3° Passo – Mecanismo que verifica qual é a próxima linha no BD

Com layout preenchido e o nome dos campos padronizados temos que definir como será feito o armazenamento das informações, estas informações por se tratarem de um cadastro devem ser armazenadas em algum lugar e de alguma forma.

Para isso será necessário implementarmos uma rotina que faz a contagem das linhas no local onde os dados serão inseridos.

SIMPLIFICANDO, esta rotina irá verificar quantas linhas estão preenchidas e qual será a próxima linha que receberá os dados do formulário de cadastro.

A rotina a seguir deverá ser implementada na no BOTÃO CADASTRAR, siga os passos a seguir:

  1. Clique no BOTÃO CADASTRAR 2 vezes.
  2. Será crida a Sub Rotina Chamada “Private Sub bt_cadastrar_Click()
  3. Insira na Sub rotina o código abaixo:
Private Sub bt_cadastrar_Click()

Dim linha As Integer

linha = Sheets("BASE").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row

'BASE é o local onde os registros serão armazenados, este local pode ser trocadoc conforme a sua necessidade ou preferência.

End Sub

 Para verificar se a rotina está funcionando, atribua a variável linha a uma Box Mensagem conforme o exemplo abaixo.

Private Sub bt_cadastrar_Click()

Dim linha As Integer

linha = Sheets("BASE").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row

Msgbox linha

End Sub

Com esta rotina definida saber em qual linha será a próxima a inserção dos dados.

divider

4° Passo – Cadastrando os dados na BASE

Agora que você já sabe qual é a linha que receberá os dados você poderá implementar o mecanismo de registro dos dados na planilha.

Private Sub bt_cadastrar_Click()

linha = Sheets("BASE").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row

Plan1.Cells(linha, 1).Value = Me.txt_nome.Value
Plan1.Cells(linha, 2).Value = Me.txt_sobrenome.Value
Plan1.Cells(linha, 3).Value = Me.txt_email.Value

Me.txt_nome.Value = Null
Me.txt_sobrenome = Null
Me.txt_email = Null

registro = Sheets("BASE").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row - 2
lbl_registro.Caption = registro

mensagem = MsgBox("Dados cadastrados com sucesso", vbInformation, ":: Cadastro ::")

End Sub

É importante ressaltar que a rotina não faz nenhum tipo de validação do tipo de dados que está sendo implementado seja ele um tipo de dados numérico, data ou texto, tão pouco esta rotina faz a verificação se os campos estão todos preenchidos ou não, para que isso seja feito será necessário implementar o trecho abaixo na rotina.

Com layout preenchido o nome dos campos definidos e a próxima linha que deverá ser preenchida o nosso trabalho fica muito mais fácil, pois a partir daí devemos definir quais são as colunas que receberão determinados dados do formulário.

Temos como exemplo a coluna 1 deverá receber os dados do TXT_NOME, a coluna 2 TXT_SOBRENOME, a coluna 3, TXT_EMAIL.

divider

5° Passo – Abrindo o formulário a partir da Planilha com um botão.

Para abrir o formulário de cadastro a partir do Excel é um processo muito simples, você deve adicionar um novo módulo e criar a rotina abaixo.

Sub AbrirFormulario()

Form_Cadastro.Show

End Sub

Após criar a rotina abaixo insira um botão na sua planilha, ou autoforma para vincular a macro criada.

Ao vincular a macro criada ao botão, toda vez que ele for clicado a rotina AbrirFormulario será acionada e o formulário aberto no Excel.

divider



botao-download



CONCLUSÃO…

Como vocês podem notar é muito simples criar um formulário de cadastro utilizando o VBA,  basta seguir as etapas conforme descrito que você obterá sucesso!!!

Peço que deixem seus comentários, opiniões e avaliações do artigo, através desses comentários opiniões e avaliações saberei como prosseguir e se estamos no caminho certo.

Desde já lhe agradeço pela visita, peço que se cadastre em nossa newsletter para receber nossos artigos, e faça bom uso do código e da planilha.

Um abraço!
Douglas Godoy




.

Sobre o Autor

Comentários bacanas...

  1. Henrique Fujimoto

    Muito bom, Obrigado pelas dicas. Aulas bem simples e ate para um leigo, como eu esta facil de entender. Parabens.

  2. Henrique Fujimoto

    Muito bom o video aula, explicado de forma simples. Parabens.
    Voce fara algum video explicando como cadastrar imagem?

  3. Felipe

    Douglas, boa tarde!
    Gostaria de tirar uma dúvida com você, pois quando preencho o cadastro mais de uma vez, o sistema não pula para a próxima linha ele apenas sobrepõe o cadastro anterior

  4. Fernando

    Ola..como ficaria o codigo se fosse para escrever os dados em uma coluna somente um item abaixo do outro e nao em linhas?

  5. Karina

    Olá Douglas,
    Muito obrigada pela generosidade, isso é raro, sempre estão alocando algum blog a um pacote de promoções……
    Você é muito bom viu?!
    Tentei alterar o código aqui para adaptar a um que eu já havia iniciado, mas não deu certo… Poderia me orientar? Sei que é muito ocupado, quando puder para mim já está ´timo!
    Foi um prazer conhecer você!

  6. luana matos

    fiz todo procedimento porém fica dando erro na linha

    Plan1.Cells(linha, 1).Value = Me.Txt_nome.Value
    fica grifada em amarelo
    erro em tempo de execução “424”
    me ajuda…..

  7. Andresson

    Boa tarde Douglas!
    Consegui fazer a minha planilha em cima da sua aula(vídeo) fiz mudando os dados. Só que quando fui colocar a planilha no modo compartilhado fiz o teste e eu criei um e outro computar criou outro, ao clicar os dois criaram na mesma linha. Como faço pra corrigir esse problema? E como faço pra fazer a planilha imprimir?

  8. reinaldo

    Bom dia! tenho conhecimento no excell mas não estou conseguindo fazer uma planilha com senhas, pode me ajudar? preciso de uma planilha com vários usuários que quando acessem tenham acesso a uma nova linha sem poder apagar a anterior e na linha criada ter o nome do usuário criador, pode me ajudar por favor?

  9. Pedro Medeiros

    Bom dia Douglas,

    Muito boa as informações prestadas. Bem didática sua VBA.

    Estou tentando estender o cadastro com mais colunas mas o formulário continua buscando somente as 3 colunas do seu exemplo. Quais variávei devo modificar?

  10. EMERSON JULIO DA SILVA

    Douglas, obrigado pelo vídeo!

    Estou com um problema, ao realizar o cadastro recebo a mensagem:
    Erro em tempo de execução ‘424’

    Pode me ajudar?

    1. Gabriel

      Confira se no seu Excel o nome “dos bastidores” das guias está Plan1(nome da aba que vc colocou)
      Plan2
      Plan3

      Ou

      Planilha1
      Planilha2
      Planilha3

      No seu código, coloque exatamente igual ao do seu Excel!

  11. Rogerio Zeni

    Muito obrigado pela ajuda que me deu não tinha ideia de como poderia fazer, gostaria da tua ajuda para criar um banco de dados com acesso a um local por meio de cartão c código de barras e/ou QR code

  12. estela depine cunha

    Boa tarde, como faço para buscar os dados desse cadastro, queria montar um relatório a partir de um determinado dado, atraves de VBA

  13. Gustavo

    Douglas queria um formulario para cadastrar, localizar e sinalizar duplicatas caso eu tenta-se incluir o mesmo nome do cliente.. pode me ajudar?

  14. Pingback: Formulário de Pesquisa com VBA - Douglas GodoyDouglas Godoy

    1. Douglas Godoy Resposta do Autor

      Douglas,

      Ao salvar a planilha você deve escolher o formato XLSM ou XLSB, estes formatos que citei salvam todo o código que você programou o VBA e permitem que da próxima vez que você venha utilizar a planilha seus códigos estejam lá.

      Espero ter te ajudado com o comentário, caso precise de mais alguma coisa me avise.

      Um abraço!

  15. Pingback: Retirar acentos e caracteres especiais no Excel - Função em VBA

  16. Pingback: Retirar acentos e caracteres especiais no Excel - Função em VBADouglas Godoy

Deixe um comentário

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