Galerinha blz?,
estou utilizando uma textbox onde a pessoa digita o id do cliente e assim que aperta enter ele procura e mostra os dados do cliente. Eu queria bloquear para que possa digitar apenas números mas como utilizo o comando afterupdate ele não esta aceitando.. alguém poder me da uma dica?
Private Sub txt_id_AfterUpdate()
If (txt_id.Text = 0) Then 'se ID for menor ou igual a 0
MsgBox "Código não Encontrado", vbCritical, Soft
txt_id.Enabled = True 'vai ativar o id
btn_img_pesq.Enabled = True 'vai ativar o botao pesquisa
txt_id.Text = ""
txt_id.SetFocus
End If
If (txt_id.Text <> "") Then 'se ID for diferente de nada
txt_id.Enabled = False 'vai desativar o id
btn_img_pesq.Enabled = False 'vai desativar o botao pesquisa
End If
Dim Linha As Long
Dim id As Long 'mudar para string se o id tiver letras ou símbolos
If Val(Me.txt_id) = 0 Then
Exit Sub
End If
Plan1.Activate
Linha = 2
id = txt_id
Do Until Cells(Linha, 1) = "" 'vai executar o laço até encontrar uma célula vazia
'Condição para localizar o registro
If Cells(Linha, 1) = id Then 'se encontrar o valor registro na célula pesquisada
opt_funcionario = Cells(Linha, 2)
opt_exfuncionario = Cells(Linha, 3)
opt_ativo = Cells(Linha, 4)
opt_inativo = Cells(Linha, 5)
txt_razao = Cells(Linha, 6)
txt_endereço1 = Cells(Linha, 7)
txt_bairro01 = Cells(Linha, 8)
txt_complemento = Cells(Linha, 9)
cmb_cidade01 = Cells(Linha, 10)
txt_cep01 = Cells(Linha, 11)
'cmb_uf01 = Cells(Linha, 12)
Exit Sub 'interrompe o código quando encontrar o código e preencher os dados
End If
Linha = Linha + 1
Loop
'se o looping for executado até a última linha significa que o excel não encontrou o código na listagem
MsgBox "Código não Encontrado", vbCritical, Soft
txt_id.Enabled = True 'vai ativar o id
btn_img_pesq.Enabled = True 'vai ativar o botao pesquisa
txt_id.Text = ""
txt_id.SetFocus
End Sub
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Ajuda - Somente Numeros TexBox AfterUpdate
Re: Ajuda - Somente Numeros TexBox AfterUpdate
Fala dudcp, blza?
Tente colocar a verificação antes do seu código :
Teste ai e, qq coisa nos avise.
[]s
Tente colocar a verificação antes do seu código :
Código: Selecionar todos
Private Sub txt_id_AfterUpdate()
If IsNumeric(txt_id) Then
' Insira seu código aqui
Else
' Trave os controles desejado aqui
End If
End Sub
[]s
- netocasaroli
- Consultor
- Mensagens: 219
- Registrado em: Seg Mai 11, 2015 5:24 pm
- Localização: Londrina-PR
Re: Ajuda - Somente Numeros TexBox AfterUpdate
Pode colocar o código para bloquear valores não numéricos no evento Change; não vai afetar no AfterUpdate...
Código: Selecionar todos
Private Sub txt_id_Change()
txt_id = Val(txt_id)
End Sub
- Mauro Coutinho
- Jedi
- Mensagens: 1561
- Registrado em: Sáb Mar 13, 2010 8:10 pm
- Localização: São José dos Pinhais - Pr
Re: Ajuda - Somente Numeros TexBox AfterUpdate
duducp, movi seu tópico pois no forum DICA é para somente postarmos dicas e não solicitar ajuda.
Quanto a sua questão, utilize a instrução abaixo, que não afetará o evento AfterUpdate :
Veja outras dicas referentes a formatação e limitação utilizando o evento KeyPress e change no tópico abaixo:
Fomatar TextBox Eventos KeyPress e Change
viewtopic.php?f=17&t=1505#.VboIGUaXtkY
[]s
Quanto a sua questão, utilize a instrução abaixo, que não afetará o evento AfterUpdate :
Código: Selecionar todos
Private Sub txt_id_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Limita a Qde de caracteres
txt_id.MaxLength = 8
'para permitir que apenas números sejam digitados
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
KeyAscii = 0
End If
End Sub
Fomatar TextBox Eventos KeyPress e Change
viewtopic.php?f=17&t=1505#.VboIGUaXtkY
[]s