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
Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)
Atenciosamente
Wagner Morel
Postado : 08/02/2017 12:56 pm