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
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.
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:
- Clique no Menu View, ou Exibir.
- Clique na opção Toolbox ou Caixa de Ferramentas conforme a imagem abaixo.
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.
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.
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.
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.
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.
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:
- Clique no BOTÃO CADASTRAR 2 vezes.
- Será crida a Sub Rotina Chamada “Private Sub bt_cadastrar_Click()“
- 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.
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.
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.
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
Muito bom, Obrigado pelas dicas. Aulas bem simples e ate para um leigo, como eu esta facil de entender. Parabens.
Muito bom o video aula, explicado de forma simples. Parabens.
Voce fara algum video explicando como cadastrar imagem?
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
show, parabéns me ajudou de mais, sem palavras.
Ola..como ficaria o codigo se fosse para escrever os dados em uma coluna somente um item abaixo do outro e nao em linhas?
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ê!
Todos seus trabalhos são excelente parabéns pelo trbalho.
Só consegui a melhor explicação, através desta página. Parabéns! Achei muito bom!
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…..
Olá , ao escrever o código Sub Abrir_Formulario () da erro , poderia me ajudar ?
Thiago, qual erro que é apresentado?
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?
Boa tarde!
Qual código para apagar a última linha preenchida!? Obrigado
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?
ele da erro no módulo.
Sub AbrirFormulario()
Form_Cadastro.Show
End Sub
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?
OLA DOUGLAS GOSTARIA DE CONSULTA O CADASTRO FEITO APARTI DO CPF
preciso da sua ajuda por favor
entre em contato comigo
71986993469
Parabéns!
Agradeço! Abraços!
Li o post hj, achei muito bom e didático.
Adilson, muito obrigado pelo comentário e pela visita.
Um abraço!
Douglas
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?
Isso geralmente acontece quando você está executando o código no VBA e com o foco em outra planilha.
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!
como alterar dado no vba
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
Grato! deu uma visão..
Obrigado Wanderson! Abs
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
Olá Estela, pode dar mais detalhes do que precisa? Me manda um e-mail…
Douglas queria um formulario para cadastrar, localizar e sinalizar duplicatas caso eu tenta-se incluir o mesmo nome do cliente.. pode me ajudar?
Gustavo,
Você precisa do formulário ou do código em si… Me mande mais detalhes do que precisa.
Olá Douglas eu não consegui criar meu formulário de cadastro vc poderia de alguma forma me ajudar?
Ola Fabiano!
Te enviei em seu email.
Abs
Muito bom..simples ..direto !!
Parabens
Muito Obrigado pelo comentário e visita Lúcio.
Um Abraço!
Muito Bom!
Teria como enviar a planilha.
OBRIGADO!
Pingback: Formulário de Pesquisa com VBA - Douglas GodoyDouglas Godoy
olá
Será que vc poderia me ajudar, estou com problemas para montar um planilha
A contagem não está funcionando.
Muito bom, bem explicado!
Afonso,
Muito Obrigado pela sua visita e pelo seu comentário!
Um abraço.
Douglas
como eu salvo o VBA na minha planilha?
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!
Muito bom !
Show! Obrigado!
Pingback: Retirar acentos e caracteres especiais no Excel - Função em VBA
Pingback: Retirar acentos e caracteres especiais no Excel - Função em VBADouglas Godoy
Excelente tutorial
Me ajudou bastante
Obrigado!
Olá Bruno,
Muito obrigado pelo comentário e pela vista!
Muito Obrigado!
Abs
Douglas
Adorei. Muito bem explicado, ou melhor bem didático, parabéns!
Olá Flávia, bom dia!
Muito obrigado pelo seu comentário e pela visita ao site.
Tem muita coisa boa por vir!
Um abraço!
Douglas