VBA – Numeração Automática no Form

Olá Meu Amigos.

Venho compartilhar com vocês informações detalhadas e manifestar os créditos ao site, ao blog, ao Tomas 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
  • Mas 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.

Comentários

comentários