Desde já agradeço a atenção e ajuda.
Seguinte: configurei algumas TextBox de um Form para terem algumas ações automáticas, mas estou tendo problemas ao preenche-las... O NumLock está sendo desativado no preenchimento...
Os códigos são esses:
Obs.: Tenho dúvidas se uso AfterUpdate ou BeforeUpdate em um dos exemplos abaixo... Na verdade, na prática, não sei muito a diferença... Se alguém puder explicar... Sou iniciante em VBA, na cara e na coragem...
Estou aberto a sugestões para eventuais melhorias nos códigos abaixo...
' Máscara de texto para data
Código: Selecionar todos
Private Sub txt_data_de_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Me.txt_data_de.MaxLength = 10 'Formato ##/##/####
Select Case KeyAscii
Case 8 'Aceita o BACK SPACE
Case 13: SendKeys "{TAB}" 'Aceita o TAB
Case 48 To 57
If Me.txt_data_de.SelStart = 2 Then Me.txt_data_de.SelText = "/"
If Me.txt_data_de.SelStart = 5 Then Me.txt_data_de.SelText = "/"
Case Else: KeyAscii = 0 'Desconsidera outros caracteres
End Select
End Sub
Código: Selecionar todos
Private Sub txt_data_de_AfterUpdate()
If Not IsDate(Me.txt_data_de) Then
MsgBox " Data inválida." & vbCrLf & vbCrLf & " Formato obrigatório: dd/mm/aaaa.", vbInformation, "Controles"
Me.txt_data_de = ""
End If
End Sub
' TAB automático '
Código: Selecionar todos
Private Sub txt_data_de_Change()
If Me.txt_data_de.SelStart = 10 Then
SendKeys "{TAB}"
End If
End Sub
Att.,
RickGomes