Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Numeração Automatica No Form

Tutoriais elaborados da comunidade
Avatar do usuário
kedim43
Colaborador
Colaborador
Mensagens: 45
Registrado em: Dom Fev 05, 2012 3:12 pm
Localização: Goias
Contato:

Numeração Automatica No Form

Mensagem por kedim43 »

Olá Meu Amigos.
Este é meu primeiro topico no forum.
Sempre leio as novidades aqui e me inscrevi no forum por me sentir muito bem em fazer parte do mesmo.

Venho compartilhar com vocês informações detalhadas e manifestar os créditos ao site, ao blog, ao Tomaz que tem sido de grande ajuda nos meus projetos de desenvolvimento em VBA.

Hoje vou tratar com vocês um topico que gostei muito e que ajudara muitos que necessitam desta ajuda.

Form com Numeração Automatica

Fiz algo bem simples onde todos possam entender com facilidade e aprender a fazer o mesmo para ter um controle numerico em seus forms de forma rapida e simples.

Bom, vamos colocar a mão nos códigos.

1º Vou descrever todo o codigo aqui e em seguida vou comentar e ensinar tudo de forma bem explicada a todos.
Código:
' Aqui é um botão de comando, que iniciara a gravação do mesmo, lembre - se, este codigo deve ser inserido dentro do botão.
' Este codigo pode ser copiado aqui e inserido diretamente em seu form, pois o mesmo já se encontra comentado.

Private Sub CommandButton1_Click()
Dim cod
' Adicionar dados na planilha ( Nesta parte, o codigo selecionará a Plan1 e gravará seus dados).
Sheets("Plan1").Select

'Aqui o codigo seleciona a linha em branco e inicia a gravação
' lembre se que poderá ser necessário a digitação de um zero (0) na primeira linha para iniciar a gravação já que os numeros começam com zero.
Range("A60000").End(xlUp).Offset(1, 0).Select

' Veja no detalhe que você necessitará de 02 TextBoxs para inserir os dados, sendo necessario mais campos siga o exemplo abaixo, insira novos TextBoxs e coloque a 'seguencia desejada abaixo

ActiveCell.Offset(0, 0).Value = Me.TextBox1.Value
ActiveCell.Offset(0, 1).Value = Me.TextBox2.Value

' Apos adiconar os dados na planilha limpa o campo
Me.TextBox2 = Empty

' Atualizar a auto-numeração lembrado que caso queira adicionar um label, troque a opção textbox1 pelo seu label
cod = Range("A60000").End(xlUp).Offset(0, 0).Value

'Aqui eis nosso contador automatico responsável pela contagem e numeração automatica.
Me.TextBox1 = cod + 1

'Final do botão salvar ou comand button 1
End Sub

'Aqui vamos iniciar a numeração sempre que o form for iniciado
Private Sub UserForm_Activate()
Dim cod

' Ativa a auto numeração no Form
Sheets("Plan1").Select

cod = Range("A60000").End(xlUp).Offset(0, 0).Value

' Aqui está nosso contador atuando sempre e atualizando a cada gravação
Me.TextBox1 = cod + 1
End Sub


' Aqui vamos iniciar um detalhe que sempre havia me deixado de cabelo em pé ( Como iniciar o cursor onde quero começar)

Private Sub UserForm_Initialize()

' inicializa no campo que deve ser digitado (Aqui entendi onde está o truque)
Me.TextBox2.SetFocus
End Sub

* Mais e agora você se pergunta:
*O textBox2 está garvando em branco, o que fazer para torna-ló obrigatório?

* Caso se pequem perguntando sobre este fato ou bem como o que fazer, não se desesperem, vou lhes mostar a solução.

No textbox2, que sempre gravará em branco, vamos bloquear está ação, assim, o comando só será executado após a inserção de dados no textbox2.
O codigo é simples.
Vamos lá!

'Aqui sendo o textbox vazio, o VBA retornará a mensagem de campo obrigatório e dará o foco a este campo e você necessitando, poderá inserir o mesmo em quantos campos necessitar.

If TextBox2.Text = "" Then
MsgBox ( "Campo Obrigatório 'Nome do campo'"), VBOkOnly, ("Sua Mensagem Aqui")

'Foco na caixa de texto em branco!
TextBox2.SetFocus
Exit Sub
End If

Lembre se que este procedimento deve ser inserido no botão de gravação ficando desta forma o codigo completo de sua aplicação.

Aqui está tudo completo.

Basta copiar o codigo abaixo, colar em um form vazio, inserir 02 TextBox e 02 ComandButton e veja o resultado.

Private Sub CommandButton1_Click()
Dim cod
' Adicionar dados na planilha
'Aqui vai o campo obrigatório

If TextBox2.Text = "" Then
MsgBox "Campo Obrigatório 'Nome do campo'"
TextBox2.SetFocus
Exit Sub
End If

Sheets("Plan1").Select
Range("A60000").End(xlUp).Offset(1, 0).Select
ActiveCell.Offset(0, 0).Value = Me.TextBox1.Value
ActiveCell.Offset(0, 1).Value = Me.TextBox2.Value

' Apos adiconar os dados na planilha limpa o campo
Me.TextBox2 = Empty

' Atualizar a auto-numeração
cod = Range("A60000").End(xlUp).Offset(0, 0).Value
Me.TextBox1 = cod + 1

End Sub

Private Sub UserForm_Activate()
Dim cod
' Ativa a auto numeração no Form
Sheets("Plan1").Select
cod = Range("A60000").End(xlUp).Offset(0, 0).Value
Me.TextBox1 = cod + 1
End Sub

Private Sub UserForm_Initialize()
' inicializa no campo de deve ser digitado
Me.TextBox2.SetFocus
End Sub

'Códido do Botão Finalizar

Private Sub CommandButton2_Click()
Unload Me
End Sub

No proximo topico, vou lhes mostar uma ação com as opções de escolha (Sim e Não) e comentar para que todos possam entender a ação tomada de acordo com a resposta e as mensagens personalizadas que serão um show no seu form e sendo assim, um grande diferencial do seu sistema.

Até Breve.

Obrigado a todos.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


carlos.locatelli
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Dom Jun 25, 2017 9:09 pm

Re: Numeração Automatica No Form

Mensagem por carlos.locatelli »

No meu vba tenho um campo ID de numeração automatica. porem gostaria de verificar a seguencia e prencher os faltantes que foram excluido e se a seguencia estiver ok. adiconar o ultimo da seguencia.
ainda nao consegui fazer isso!
Gostaria de uma ajuda.


Responder