Notifications
Clear all

Simplificar Código Textbox

3 Posts
2 Usuários
0 Reactions
807 Visualizações
(@romanholi)
Posts: 177
Estimable 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
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious 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

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
(@romanholi)
Posts: 177
Estimable 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