none
Textbox aceitar inserir somente determinados numeros RRS feed

  • Pergunta

  • Bom dia.

    Pesquisei  e não encontrei uma macro para inserir números numa textbox, mas que permita somente determinados números.

    Por exemplo, necessito que somente os números de 1 até 53 sejam aceitos na textbox, qualquer outro numero seria rejeitado a sua inserção, voltando a textbox a ficar vazia.

    Alguém poderia me informar como seria esta macro?
    quarta-feira, 18 de março de 2015 14:59

Respostas

  • Private Sub TextBox1_Change()
        Dim dNumber As Double
        Dim sError As String
        Static bEditing As Boolean
        
        If bEditing Then Exit Sub
        bEditing = True
        
        If Me.TextBox1 = "" Then GoTo linEnd
        
        If Not IsNumeric(Me.TextBox1) Then
            sError = "É obrigatório inserir um número!"
            GoTo linFail
        End If
        
        dNumber = CDbl(Me.TextBox1)
        If dNumber < 1 Or dNumber > 53 Then
            sError = "Insira um número entre 1 e 53!"
            GoTo linFail
        End If
        
    linEnd:
        bEditing = False
        Exit Sub
    linFail:
        MsgBox sError, vbExclamation
        Me.TextBox1 = ""
        GoTo linEnd
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quarta-feira, 18 de março de 2015 18:29
    Moderador

Todas as Respostas

  • Private Sub TextBox1_Change()
        Dim dNumber As Double
        Dim sError As String
        Static bEditing As Boolean
        
        If bEditing Then Exit Sub
        bEditing = True
        
        If Me.TextBox1 = "" Then GoTo linEnd
        
        If Not IsNumeric(Me.TextBox1) Then
            sError = "É obrigatório inserir um número!"
            GoTo linFail
        End If
        
        dNumber = CDbl(Me.TextBox1)
        If dNumber < 1 Or dNumber > 53 Then
            sError = "Insira um número entre 1 e 53!"
            GoTo linFail
        End If
        
    linEnd:
        bEditing = False
        Exit Sub
    linFail:
        MsgBox sError, vbExclamation
        Me.TextBox1 = ""
        GoTo linEnd
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quarta-feira, 18 de março de 2015 18:29
    Moderador
  • Boa noite Felipe.

    Funcionou exatamente como eu necessito.

    Muito obrigado!

    quarta-feira, 18 de março de 2015 23:16