none
Máscara no Textbox (VBA)

    Question

  • Pessoal,

     

    Estou tentando fixar o número de caracteres dentro da textbox e aplicar uma máscara, o formulário foi desenvolvido no VBA do Excel.

    Por exemplo: só aceitar números e a máscara seria composta de 5 números e 1 dígito.

     

    Podem me ajudar?

     

    Obrigada.

    Thursday, April 03, 2008 2:25 PM

Answers

  • Olá,

     

    um dos caminhos é você aplicar um Format com suas regras. Exemplo:

     

    Code Snippet
    Private Sub TextBox1_AfterUpdate()
    Me.TextBox1.Text = Format(Me.TextBox1.Text, "00000-0")
    End Sub

     

     

     

    Thursday, April 03, 2008 2:54 PM
  •  

    If IsNumeric(variavel) = False Then
    MsgBox "não é"
    Else
    MsgBox "é"
    End If

     

    vc pode fazer desta forma..

    Thursday, April 03, 2008 5:16 PM
  • Olá Panddora, caso seu campo se chama text1 é só copiar......

     

     

    Private Sub Text1_KeyPress(KeyAscii As Integer)

    If KeyAscii = vbKeyReturn Or KeyAscii = vbKeyBack Then Exit Sub
    If KeyAscii < vbKey0 Or KeyAscii > vbKey9 Then
        KeyAscii = 0
    End If
    End Sub

     

     

    Até mais...

    Thursday, April 03, 2008 7:46 PM
  • ou Melhor... 


    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    If KeyAscii = vbKeyReturn Or KeyAscii = vbKeyBack Then Exit Sub
    If KeyAscii < vbKey0 Or KeyAscii > vbKey9 Then
        KeyAscii = 0
    End If
    End Sub

    Thursday, April 03, 2008 8:02 PM
  • Olá,

     

    1º linha

    Ao apertar enter ou backspace sai da sub (caso vc queira pular de controle ou apagar o que digitou)

    2º linha

    Se a tecla que vc apertar não estiver entre 0 e 9 então

    o que vc digitou recebe vazio...

     

    Entendeu??

     

    Por nada

     

    Thursday, April 03, 2008 8:39 PM

All replies

  • Olá,

     

    um dos caminhos é você aplicar um Format com suas regras. Exemplo:

     

    Code Snippet
    Private Sub TextBox1_AfterUpdate()
    Me.TextBox1.Text = Format(Me.TextBox1.Text, "00000-0")
    End Sub

     

     

     

    Thursday, April 03, 2008 2:54 PM
  • Olá, Luiz

     

    Aproveitando sua disponibilidade...

    É possível restringir a digitação deste campo para que aceite somente números? Quero ver se consigo fazer também uma validação do código digitado como no caso do CPF, onde se a pessoa digitar um número errado o sistema não aceita.

     

    Obrigada.

    Thursday, April 03, 2008 3:36 PM
  •  

    If IsNumeric(variavel) = False Then
    MsgBox "não é"
    Else
    MsgBox "é"
    End If

     

    vc pode fazer desta forma..

    Thursday, April 03, 2008 5:16 PM
  • Olá Panddora, caso seu campo se chama text1 é só copiar......

     

     

    Private Sub Text1_KeyPress(KeyAscii As Integer)

    If KeyAscii = vbKeyReturn Or KeyAscii = vbKeyBack Then Exit Sub
    If KeyAscii < vbKey0 Or KeyAscii > vbKey9 Then
        KeyAscii = 0
    End If
    End Sub

     

     

    Até mais...

    Thursday, April 03, 2008 7:46 PM
  • O colega Lion respondeu acima.

     

    Thursday, April 03, 2008 7:49 PM
  • Obrigada!

    Thursday, April 03, 2008 7:53 PM
  • ou Melhor... 


    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    If KeyAscii = vbKeyReturn Or KeyAscii = vbKeyBack Then Exit Sub
    If KeyAscii < vbKey0 Or KeyAscii > vbKey9 Then
        KeyAscii = 0
    End If
    End Sub

    Thursday, April 03, 2008 8:02 PM
  • Olá, Evangelista,

     

    Poderia me explicar o que faz o código acima para que eu possa entender sua lógica?

     

    Obrigada.

    Thursday, April 03, 2008 8:15 PM
  • Olá,

     

    1º linha

    Ao apertar enter ou backspace sai da sub (caso vc queira pular de controle ou apagar o que digitou)

    2º linha

    Se a tecla que vc apertar não estiver entre 0 e 9 então

    o que vc digitou recebe vazio...

     

    Entendeu??

     

    Por nada

     

    Thursday, April 03, 2008 8:39 PM