Um procedimento super simples para ser incluído no evento KeyPress da sua caixa de texto facilita muito o preenchimento de formulários.
Estou demonstrando aqui como colocar uma máscara com bloqueio para o usuário digitar apenas números.
Neste exemplo você verá como a máscara é feita para campos de Data, Hora, CPF e CEP.
O código abaixo permite que o usuário digite apenas números, qualquer outro caractere é ignorado.
No momento da digitação, os caracteres especiais de barra, dois pontos, ponto ou hífen são incluídos automaticamente.
Código para máscara de Data
Private Sub txtData_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Excel Flex - www.excelflex.com.br/dicas If Not IsNumeric(Chr(KeyAscii.Value)) Or Len(txtData.Text) >= 10 Then KeyAscii.Value = 0 Else If Len(txtData.Text) = 2 Or Len(txtData.Text) = 5 Then txtData.Text = txtData.Text & "/" End If End If End Sub
Código para máscara de Hora
Private Sub txtHora_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Excel Flex - www.excelflex.com.br/dicas If Not IsNumeric(Chr(KeyAscii.Value)) Or Len(txtHora.Text) >= 5 Then KeyAscii.Value = 0 Else If Len(txtHora.Text) = 2 Then txtHora.Text = txtHora.Text & ":" End If End If End Sub
Código para máscara de CPF
Private Sub txtCPF_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Excel Flex - www.excelflex.com.br/dicas If Not IsNumeric(Chr(KeyAscii.Value)) Or Len(txtCPF.Text) >= 14 Then KeyAscii.Value = 0 Else If Len(txtCPF.Text) = 3 Or Len(txtCPF.Text) = 7 Then txtCPF.Text = txtCPF.Text & "." End If If Len(txtCPF.Text) = 11 Then txtCPF.Text = txtCPF.Text & "-" End If End If End Sub
Código para máscara de CEP
Private Sub txtCEP_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Excel Flex - www.excelflex.com.br/dicas If Not IsNumeric(Chr(KeyAscii.Value)) Or Len(txtCEP.Text) >= 10 Then KeyAscii.Value = 0 Else If Len(txtCEP.Text) = 2 Then txtCEP.Text = txtCEP.Text & "." End If If Len(txtCEP.Text) = 6 Then txtCEP.Text = txtCEP.Text & "-" End If End If End Sub
Estou disponibilizando aqui o arquivo para download do código em operação.
Caso precise de ajuda profissional para implementar este código ou então para automatizar a sua planilha, me envie uma mensagem através do formulário de contato que responderei em breve, se preferir, pode me enviar um e-mail através do endereço [email protected].