Outro dia postei um vídeo no Youtube que ensinava a criar um Formulário de Pesquisa com VBA (Link), quando um dos alunos me questinou sobre o tipo de pesquisa com um Textbox que aceita apenas Números.
Dái surgiu a idéia desta postagem que é te ensinar a como fazer para que o seu campo aceite apenas valores números quando o usuário digita.
Para que isso aconteça você precisa implementar duas etapas no seu formulário, sendo elas:
-
Criar a função que verifica se o valor digitado é um número, dentro do seu formulário.
-
Vincular esta ação no seu formulário através do evento _KeyPress( )
Criando a Função – Textbox que aceita apenas Números
Criando a Função SóNumeros, dentro do formulário que contém o TextBox.
Private Function SóNúmeros(l As IReturnInteger) Select Case l Case Asc("0") To Asc("9") SóNúmeros = l Case Else SóNúmeros = 0 MsgBox "Favor inserir apenas números!", vbExclamation, "CAMPO TIPO NÚMERO" End Select End Function
Após criar a função você deverá clicar 2x no seu campo que deseja que seja feita a validação, altere o evento de _Change, para _KeyPress conforme imagem abaixo:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) KeyAscii = SóNúmeros(KeyAscii) End Sub
Esta é uma forma de realizarmos a validação do que está sendo digitado no campo, ao utilizarmos o evento KeyPress, assim que o usuário digita o código faz a validação, e se não for número ele devolve com uma mensagem na tela.
Espero que tenha te ajudado e caso conheça outras formas compartilhe comigo!
Dá uma olhada também no artigo abaixo…
http://douglasgodoy.com.br/formulario-de-pesquisa-com-vba/
Um abraço!
Douglas Godoy
olá boa tarde, estou criando uma planilha para controlar a entrada e saída de veiculos, porém não estou conseguindo definir a entrada de dados apneas numeros e letras (não importa se digita em minusculo o resultado tem que sair em maiusculo), não permitindo a entrada de mais nenum tipo de caractere para garantir a integridade
Olá, boa tarde!
Para permitir apenas números e letras (convertendo letras para maiúsculas automaticamente), você pode usar este código VBA no evento KeyPress do TextBox:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Permite apenas números (48-57) e letras (65-90, 97-122)
If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or (KeyAscii >= 65 And KeyAscii <= 90) Or (KeyAscii >= 97 And KeyAscii <= 122)) Then KeyAscii = 0 ' Bloqueia outros caracteres End If End Sub Private Sub TextBox1_Change() ' Converte para maiúsculas automaticamente TextBox1.Text = UCase(TextBox1.Text) TextBox1.SelStart = Len(TextBox1.Text) ' Mantém o cursor no final End Sub Isso garante que apenas letras e números sejam digitados e que todas as letras fiquem maiúsculas. Teste e me avise se precisar de ajustes!
Muito Obrigado amigo, me ajudou demais!! conheci seu blog agora e estarei retornando.
Show de bola, obrigado pelo comentário!
Bom dia
Muito boa as explicações
obrigado
Show de bola Aldo! Agradeço pela visita e pelo comentário. Abraços