Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Formatar Bordas TextBox no Initialize
Formatar Bordas TextBox no Initialize
Boa Tarde.
Existe algum meio de formatar todas as textbox e combobox de um form de uma so vez no evento Initialize? No momento estou configurando uma por uma, exemplo:
Me.cbxAcao.BorderColor = RGB(0, 128, 192)
Me.cbxCategoria.BorderColor = RGB(0, 128, 192)
Me.cbxItem.BorderColor = RGB(0, 128, 192)
Me.cbxEmpresa.BorderColor = RGB(0, 128, 192)
Me.txtValor.BorderColor = RGB(0, 128, 192)
Me.txtDataRef.BorderColor = RGB(0, 128, 192)
Me.txtData.BorderColor = RGB(0, 128, 192)
Att,
Marco
Existe algum meio de formatar todas as textbox e combobox de um form de uma so vez no evento Initialize? No momento estou configurando uma por uma, exemplo:
Me.cbxAcao.BorderColor = RGB(0, 128, 192)
Me.cbxCategoria.BorderColor = RGB(0, 128, 192)
Me.cbxItem.BorderColor = RGB(0, 128, 192)
Me.cbxEmpresa.BorderColor = RGB(0, 128, 192)
Me.txtValor.BorderColor = RGB(0, 128, 192)
Me.txtDataRef.BorderColor = RGB(0, 128, 192)
Me.txtData.BorderColor = RGB(0, 128, 192)
Att,
Marco
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Formatar Bordas TextBox no Initialize
Marco, boa tarde e seja bem vindo ao fórum.
Tente utilizar no evento Initialize, o código abaixo:
Dúvidas, a disposição.
Tente utilizar no evento Initialize, o código abaixo:
Código: Selecionar todos
Dim ctrl As control
For Each ctrl In Me.Controls
If VBA.Left(ctrl.Name, 3) = "cbx" _
Or VBA.Left(ctrl.Name, 3) = "txt" Then _
ctrl.BorderColor = RGB(0, 128, 192)
Next ctrl
Re: Formatar Bordas TextBox no Initialize
Boa Tarde!Mikel Silveira Fraga escreveu: ↑Sex Jun 02, 2017 4:21 pm Marco, boa tarde e seja bem vindo ao fórum.
Tente utilizar no evento Initialize, o código abaixo:Dúvidas, a disposição.Código: Selecionar todos
Dim ctrl As control For Each ctrl In Me.Controls If VBA.Left(ctrl.Name, 3) = "cbx" _ Or VBA.Left(ctrl.Name, 3) = "txt" Then _ ctrl.BorderColor = RGB(0, 128, 192) Next ctrl
Primeiramente, obrigado por responder.
Funcionou sim, mas poderia me explicar esse funcionamento?
Dim ctrl as control (Declarando assim posso utilizar tanto para textbox, combobox, buttons e etc?)
For Each ctr In Me.Controls (Aqui ok!)
If VBA.Left(ctrl.Name,3) = "cbx" (Aqui, o que esse ".left" faz? e apos o ".Name", porque colocou o ",3"?
o restante do codigo consegui compreender, se puder me explicar o que relatei, nao abusando da sua ajuda, fico agradecido!
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Formatar Bordas TextBox no Initialize
Marcos, boa noite.
Claro que te explico, com maior prazer.
A rotina é iniciada declarando-se uma variável do tipo Control. Esse tipo representa todos os Controles que são utilizados dentro de um Userform, indo desde TextBox até Multipage.
Quando uso o laço For Each, estou utilizando uma variação do For, para se navegar entre objetos de uma coleção do tipo Controles. Nesse caso, a variável ctrl vai passando por todos os controles do Userform (Me.Controls: onde Me = Userform local/atual; e Controls refere-se a coleção de controles do Userform).
Na sequencia fiz um teste, tendo como base os prefixos que você utilizou nos controles (cbx: ComboBox | txt: TextBox), usando a função Left (Esquerda) para comparar os controles que começassem com esses prefixo. Ao ser identificado, ele coloria a borda do controle e passava para o próximo, até finalizar todos.
Espero ter sido o mais claro possível na explicação. Dúvidas, a disposição.
Claro que te explico, com maior prazer.
A rotina é iniciada declarando-se uma variável do tipo Control. Esse tipo representa todos os Controles que são utilizados dentro de um Userform, indo desde TextBox até Multipage.
Quando uso o laço For Each, estou utilizando uma variação do For, para se navegar entre objetos de uma coleção do tipo Controles. Nesse caso, a variável ctrl vai passando por todos os controles do Userform (Me.Controls: onde Me = Userform local/atual; e Controls refere-se a coleção de controles do Userform).
Na sequencia fiz um teste, tendo como base os prefixos que você utilizou nos controles (cbx: ComboBox | txt: TextBox), usando a função Left (Esquerda) para comparar os controles que começassem com esses prefixo. Ao ser identificado, ele coloria a borda do controle e passava para o próximo, até finalizar todos.
Espero ter sido o mais claro possível na explicação. Dúvidas, a disposição.
Re: Formatar Bordas TextBox no Initialize
Positivo. Captei vossa mensagem com sucesso.Mikel Silveira Fraga escreveu: ↑Sex Jun 02, 2017 6:21 pm Marcos, boa noite.
Claro que te explico, com maior prazer.
A rotina é iniciada declarando-se uma variável do tipo Control. Esse tipo representa todos os Controles que são utilizados dentro de um Userform, indo desde TextBox até Multipage.
Quando uso o laço For Each, estou utilizando uma variação do For, para se navegar entre objetos de uma coleção do tipo Controles. Nesse caso, a variável ctrl vai passando por todos os controles do Userform (Me.Controls: onde Me = Userform local/atual; e Controls refere-se a coleção de controles do Userform).
Na sequencia fiz um teste, tendo como base os prefixos que você utilizou nos controles (cbx: ComboBox | txt: TextBox), usando a função Left (Esquerda) para comparar os controles que começassem com esses prefixo. Ao ser identificado, ele coloria a borda do controle e passava para o próximo, até finalizar todos.
Espero ter sido o mais claro possível na explicação. Dúvidas, a disposição.
Muito obrigado pela ajuda e pelo esclarecimento!
Re: Formatar Bordas TextBox no Initialize
Olá, boa tarde.
É possível fazer esse procedimento, porém, para mudar a cor da borda somente quando a textbox estiver ativa, tipo, ao entrar na textbox (enter) muda a cor e ao sair dela voltar ao padrão anterior?
Obrigado.
É possível fazer esse procedimento, porém, para mudar a cor da borda somente quando a textbox estiver ativa, tipo, ao entrar na textbox (enter) muda a cor e ao sair dela voltar ao padrão anterior?
Obrigado.
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Formatar Bordas TextBox no Initialize
Boa tarde Fallex, tudo bem?
Claro que é possível. Pode adaptar os comandos abaixo, para realizar esse procedimento.
Agora, se o que esta querendo é realizar esse comando já esta sendo utiliza e o que você deseja é adaptar a declaração de um único objeto, igual o caso acima, também é possível, mas já entramos na parte de desenvolvimento de Classes.
Caso queira encarar a bronca, dê uma olhada nesse vídeo e veja se atende sua necessidade.
Excel VBA Classe para Incluir Mascaras em TextBox
Claro que é possível. Pode adaptar os comandos abaixo, para realizar esse procedimento.
Código: Selecionar todos
Private Sub TextBox1_Enter()
Me.TextBox1.BorderColor = vbGreen
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Me.TextBox1.BorderColor = vbBlack
End Sub
Caso queira encarar a bronca, dê uma olhada nesse vídeo e veja se atende sua necessidade.
Excel VBA Classe para Incluir Mascaras em TextBox