romanholi,
Boa tarde!
Se você for checar todos os controles (caixa de texto ou qualquer outro controle) através de um único comando, como por exemplo quando o usuário clicar em um Botão de Comando, você pode utilizar o seguinte código no evento Click do Botão de Comando:
Private Sub CommandButton1_Click()
Call ComandoUnico
End Sub
E esse num módulo:
Sub ComandoUnico()
Dim CaixasDeTexto As Control
For Each CaixasDeTexto In UserForm1.Controls
If Left(CaixasDeTexto.Name, 7) = "TextBox" Then
If Not IsNumeric(CaixasDeTexto.Text) Then CaixasDeTexto.Text = Empty
End If
Next
End Sub
Todavia, se você quiser utilizar o evento Change de cada Controle, poderá ainda utilizar esse módulo acima, mas terá que inserir em cada evento Change dos controles a chamada ao código existente no módulo. Existe uma outra forma mais complexa de fazer isso utilizando Módulos de Classe, todavia, eu não me aventuro nessa praia e nem sei como fazer...
Para utilizar no evento Change de cada controle basta inserir a chamada ao código do módulo, dessa forma:
Private Sub TextBox1_Change()
Call ComandoUnico
End Sub
Postado : 08/02/2017 12:56 pm