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:

  1. Criar a função que verifica se o valor digitado é um número, dentro do seu formulário.

  2. Vincular esta ação no seu formulário através do evento _KeyPress( )

Textbox que aceita apenas Números

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




.

Sobre o Autor

Comentários bacanas...

  1. Marcio

    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

    1. Douglas Godoy Resposta do Autor

      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!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *