Estou criando uma agenda e gostaria que minhas duas textbox que recebe a hora digitada pelo usuário se autoformate durante a imputação de dados.
Ex: quando o usuário digitar do 3 até o 9 ele acrescente antes o 0 e se for o 1 ou 2 não e depois do 2 caractere ele acrescente os : para separar hora do minuto. Caso o minuto for maior q 5 ele jogue automático o zero também.
Alguém me da uma luz ae? Tentei usar case no evento _KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) mas infelizmente não deu certo. Tentei com o evento change mas não deu certo. Como sou leito no VBA tenho certeza q é meu código q está errado. Alguém sabe como resolver isso?
Segue o código (incompleto) q não funcionou adequadamente:
Private Sub txtInicio_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 51 To 57 ' BackSpace(8)) e numericos (51 até 57) do 3 até o 9
If Len(txtInicio) = 1 Then
txtInicio.Text = "0" & txtInicio.Text
End If
End Select
If Len(txtInicio) = 2 Then
txtInicio = txtInicio & ":"
End If
Select Case KeyAscii
Case 48 To 50 ' BackSpace 0, 1 e 2
If Len(txtInicio) = 1 Then
txtInicio.Text = txtInicio.Text
End If
End Select
If Len(txtInicio) = 2 Then
txtInicio = txtInicio + ":"
End If
Pergunta
MosconiDih
Pessoal tenho uma dúvida.
Estou criando uma agenda e gostaria que minhas duas textbox que recebe a hora digitada pelo usuário se autoformate durante a imputação de dados.
Ex: quando o usuário digitar do 3 até o 9 ele acrescente antes o 0 e se for o 1 ou 2 não e depois do 2 caractere ele acrescente os : para separar hora do minuto. Caso o minuto for maior q 5 ele jogue automático o zero também.
Alguém me da uma luz ae? Tentei usar case no evento _KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) mas infelizmente não deu certo. Tentei com o evento change mas não deu certo. Como sou leito no VBA tenho certeza q é meu código q está errado. Alguém sabe como resolver isso?
Segue o código (incompleto) q não funcionou adequadamente:
Private Sub txtInicio_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 51 To 57 ' BackSpace(8)) e numericos (51 até 57) do 3 até o 9
If Len(txtInicio) = 1 Then
txtInicio.Text = "0" & txtInicio.Text
End If
End Select
If Len(txtInicio) = 2 Then
txtInicio = txtInicio & ":"
End If
Select Case KeyAscii
Case 48 To 50 ' BackSpace 0, 1 e 2
If Len(txtInicio) = 1 Then
txtInicio.Text = txtInicio.Text
End If
End Select
If Len(txtInicio) = 2 Then
txtInicio = txtInicio + ":"
End If
End Sub
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.