Haveria alguma forma de executar esse código acima em um módulo e inicializar no UserForm sem ter q repetir em todas as textbox !?
Bom dia, Francisco!
Nesse caso vc poderia passar o keycode interceptado e também o controle que vai ganhar o foco para um procedimento, que pode estar em um módulo normal ou mesmo logo abaixo dos módulos de evento considerados, que é como imaginei abaixo. Exemplo:
Private Sub txtEndereco_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
RotinaÚnica KeyCode, txtNome
End Sub
___________________
Private Sub txtIdade_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
RotinaÚnica KeyCode, txtEndereco
End Sub
___________________
Private Sub RotinaÚnica(ByVal kC As MSForms.ReturnInteger, ByVal ctrl As MSForms.Control)
If kC = 38 Then
ctrl.SetFocus
End If
End Sub
Se vc colocar em um módulo normal, terá que tirar o Private da frente do Sub RotinaÚnica.... e preferivelmente qualificar também. Ex.: Módulo1.RotinaÚnica KeyCode, txtEndereco
Postado : 05/07/2016 6:20 am