Formata DATA : Supondo que se TextBox esteja com o nome "txtData", a formatação ocorrerá qunado da digitação :
Private Sub txtData_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Limita a Qde de caracteres
txtData.MaxLength = 8
'para permitir que apenas números sejam digitados
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
KeyAscii = 0
End If
End Sub
Private Sub txtData_Change()
'Formata : dd/mm/aa
If Len(txtData) = 2 Or Len(txtData) = 5 Then
txtData.Text = txtData.Text & "/"
SendKeys "{End}", True
End If
End Sub
Para CPF:
Private Sub Txt_CPF_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Limita a Qde de caracteres
Txt_CPF.MaxLength = 14
Select Case KeyAscii
Case 8, 48 To 57 ' BackSpace e numericos
If Len(Txt_CPF) = 3 Or Len(Txt_CPF) = 12 Then
Txt_CPF.Text = Txt_CPF.Text & "."
SendKeys "{End}", False
ElseIf Len(Txt_CPF) = 7 Then
Txt_CPF.Text = Txt_CPF.Text & "."
ElseIf Len(Txt_CPF) = 11 Then
Txt_CPF.Text = Txt_CPF.Text & "-"
SendKeys "{End}", False
End If
Case Else ' o resto é travado
KeyAscii = 0
End Select
End Sub
Veja exemplo utilizando CPF, tem outro tipo :
viewtopic.php?f=10&t=2780&p=12637&hilit=cpf#p12637
TextBox Fone para dois numeros formato : 2222-3344 / 3333-4567 :
Private Sub txtFone_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Limita a Qde de caracteres
txtFone.MaxLength = 21
Select Case KeyAscii
Case 8, 48 To 57 ' BackSpace e numericos
If Len(txtFone) = 4 Or Len(txtFone) = 10 Then
txtFone.Text = txtFone.Text & "-"
SendKeys "{End}", False
ElseIf Len(txtFone) = 9 Then
txtFone.Text = txtFone.Text & " / "
ElseIf Len(txtFone) = 16 Then 'Or Len(txtFone) = 20 Then
txtFone.Text = txtFone.Text & "-"
SendKeys "{End}", False
End If
Case Else ' o resto é travado
KeyAscii = 0
End Select
End Sub
Quanto a Horas, tem algumas formas, mas antes gostaria de saber se quer uma formatação simples, ou com verificação se é uma "Hora" valida, por exemplo, evitando digitar 25:20.
Vou ver onde deixei a rotina e mais tarde posto.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 02/12/2011 6:35 pm