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.