Nesse artigo estarei mostrando com validar campos de caixa de texto para receber determinado valor. Restringir a entrada de texto ou números na caixa de texto e muito útil e se faz necessário para controle do projeto, no nosso caso aqui vai ser Texto ou Numero de acordo com cada TextBox.
Vamos criar um arquivo em branco no Excel para que possamos montar nosso exemplo. Para isso cria uma nova pasta de trabalho salva ela com o nome de sua preferência, eu coloquei o mesmo do titulo do arquivo para fins didáticos. Com a nossa pasta de trabalho criada e salva devidamente como “Pasta Habilitada para Macro do Excel” caso não seja nessa extensão provavelmente não irá funcionar corretamente o projeto.
Alt+F11 Abrindo o editor VBE
Restringir a entrada de texto ou números na TextBox Excel VBA. Com o editor VBE aberto vamos inserir um UserForm na guia Inserir e de início não vamos mudar nenhuma configuração dele. Após inserir o formulário propriamente dito, agora vamos adicionar duas Label (Rotulo), e em seguida duas TextBox(Caixa de Texto).
Para as Label vamos dar os nomes somente para entendimento pois não faremos uso delas na codificação. Para a primeira Somente Texto e a segunda Somente Números. Vamos renomear as caixas de texto (TextBox) para a primeira na Propriedade Name dela coloca Txt_SoTexto e a segunda Txt_SoNumero assim mesmo sem acentos e caracteres especiais apenas se usa anderlaine.
Codificação da primeira TextBox – Somente Texto
Restringir a entrada de texto ou números. Vamos começar a codificar a primeira caixa de texto para fazer as validações e restrições de entrada de números. De um duplo clique na primeira caixa de texto e dentro do evento Change escreve o seguinte código como está especificado abaixo.
TextBox somente número:
'Valida e bloqueia a entrada de texto no campo de texto
Private Sub Txt_SoNumero_Change()
Dim Texto As Variant
Dim Caracter As Variant
Dim Comprimento As Integer
Dim i As Integer
On Error Resume Next
Texto = Me.Txt_SoNumero.Value
Comprimento = Len(Me.Txt_SoNumero.Value)
For i = 1 To Comprimento
Caracter = Mid(Texto, i, 1)
If Caracter <> "" Then
If Caracter < Chr(48) Or Caracter > Chr(57) Then
Me.Txt_SoNumero.Value = Replace(Texto, Caracter, "")
Else
End If
End If
Next i
On Error GoTo 0
Caracter = 0
End Sub
TextBox Somente texto
'Valida e bloqueia a entrada de numeros no campo de texto
Private Sub Txt_SoTexto_Change()
Dim Texto As Variant
Dim Caracter As Variant
Dim Comprimento As String
Dim i As Integer
On Error Resume Next
Texto = Me.Txt_SoTexto.Value
Comprimento = Len(Me.Txt_SoTexto.Value)
For i = 1 To Comprimento
Caracter = CInt(Mid(Texto, i, 1))
If Caracter <> "" Then
If Not Application.WorksheetFunction.IsText(Caracter) Then
Me.Txt_SoTexto.Value = Replace(Texto, Caracter, "")
Else
End If
End If
Next i
On Error GoTo 0
End Sub
Não estarei explicando cada objeto e propriedade empregada no desenvolvimento, mais são comando do dia a dia de um programador. Apenas desenvolva no seu projeto pessoa nada de copiar e colar, pois a prática fixa o entendimento e ajuda melhorar o aprendizado.
Breve introdução das funcionalidades dos códigos.
Somente números: aqui fazemos usamos a função Chr (x), que especifica que, se o valor inserido é inferior a 48 (0) e maior que 57 (9), então ele deve ser substituído por “”, ou seja, vazio.
Apenas texto: aqui usamos a função IsText para validar tudo aquilo que não for considerado como um texto será substituído por “”, isto é, vazio.
Veja mais…
Sistema de Controle Financeiro Completo em Excel 4.0
Planilhas para a gestão do seu negócio em Excel
Gerar orçamento em Excel e salvar em PDF