Trabalhando com objetos criados em tempo de execução. Como aplicar evento change()

Joined
Jul 28, 2015
Messages
2
Boa Noite!

Estou desenvolvendo um aplicativo onde estão criando "TextBox1" em tempo de execução: Segue o código básico:
Private Sub CommandButton1_Click()
Dim NovoTexBox As Control
Set NovoTexBox = Me.Controls.Add("Forms.TextBox.1", "NovoTexBox", True)
With NovoTexBox
.Width = 120
.Height = 18
.Top = 20
.Left = 20

End With
End Sub

Agora, o que eu estou querendo fazer mas sem sucesso é trabalhar com esse novo objeto criado, ou seja, gostaria de aplicar eventos nele. Tais como o evento change(), ou qualquer outro evento...


O exemplo dessa aplicação, seria, limitar o acesso somente a números deste "texbox" criado na execução, bem como, formata-lo para data dd/mm/yy

Isso é possivel? Ou os eventos somente poderão ser criados quando o objeto for do próprio excel?

Muito Obrigado

Rodrigo
 

Excel Facts

Excel Joke
Why can't spreadsheets drive cars? They crash too often!
Olá Rodrigo,

Eu não tenho grande experiência nesse assunto, mas andei dando uma pesquisada na internet e no forum e encontrei uma discussão (thread) em inglês.
Veja a discussão aqui
http://www.mrexcel.com/forum/excel-...ated-userform-events-handler-not-working.html

Entendi que.
1. não é possível criar código (no seu caso eventos) quando o Userform já está carregado na memória. Mesmo que você use a Private Sub Userform_Initialize()

2. se você quiser inserir o TextBox com eventos em tempo de execução (on the fly) é necessário criar todo o formulário em tempo de execução.
Exemplo de código para isto
VBA Express : Excel - Create a temporary UserForm to show the user's Colour Palette

3. outra solução é criar uma nova classe TextBox com eventos

Espero ter ajudado

Abraços

M.
 
Upvote 0

Forum statistics

Threads
1,214,545
Messages
6,120,132
Members
448,947
Latest member
test111

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top