Notifications
Clear all

Simplificar Código Textbox

3 Posts
2 Usuários
0 Reactions
794 Visualizações
(@romanholi)
Posts: 0
New Member
Topic starter
 

Pessoal, boa tarde!

Tenho que utilizar o comando abaixo em todos os meus 36 textbox's:

Private Sub Txt_Chapa01_01_Change()

 If Not IsNumeric(Txt_Chapa01_01.Text) Then Txt_Chapa01_01.Text = Empty

End Sub

Tem como simplificar isso. Coloca-lo num módulo uma única vez e chamar em todos os textboxes? Ou programá-lo para funcionar do Txt_Chapa01_01 para Txt_Chapa01_36?

Tenho vários comandos que estou utilizando em cada textboxe, se tiver como simplificar adaptarei os demais também!

Obrigado Pessoal

 
Postado : 08/02/2017 12:26 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

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
(@romanholi)
Posts: 0
New Member
Topic starter
 

Wag, boa tarde!

Muito obrigado pela resposta e já atendeu. Utilizei a segunda opção, módulo com o comando único!
Desta forma fica mais limpo o código! Ajudou bastante meu amigo!

Abraços

 
Postado : 08/02/2017 1:13 pm