Campos dinâmicos em...
 
Notifications
Clear all

Campos dinâmicos em tempo de execução

6 Posts
3 Usuários
0 Reactions
1,400 Visualizações
(@israelmpb)
Posts: 0
New Member
Topic starter
 

Boa Tarde,

Estou precisando criar campos dinâmicos em tempo de execução em um formulário VBA.
De acordo com a resposta do usuário em um combo box, irá surgir alguns text box.

Se alguem puder me ajudar, eu agradeço

 
Postado : 26/07/2016 10:48 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

israelmpb,

Boa tarde!

Segue um pequeno exemplo que faz o que você quer. Veja se é isso.

 
Postado : 26/07/2016 11:28 am
(@edsonbr)
Posts: 0
New Member
 

Olá, Israelmpb, seja bem vindo!

Criar um controle em tempo de execução, pura e simplesmente até que é simples. Exemplo:

Private Sub UserForm_Click()
  Dim ctl1 As MSForms.TextBox, ctl2 As MSForms.TextBox
  Set ctl1 = Me.Controls.Add("Forms.TextBox.1", "myTxtBox1", True)
  Set ctl2 = Me.Controls.Add("Forms.TextBox.1", "myTxtBox2", True)
  ctl1.Top = 30: ctl1.Left = 100
  ctl2.Top = 50: ctl2.Left = 100
  ctl1.Value = "Teste"
  ctl2.Value = ctl1.Value & "B"
End Sub

Só que assim teria pouca utilidade, pois as textboxes criadas não responderiam a nenhum evento (veja que ao rodar o código, mudando o valor da primeira caixa não atualiza a segunda, pois não existe um evento "Change" nas caixas recém-criadas para que se possa codificar seu comportamento).

A saída então seria criar uma classe com os eventos desejados (num módulo de classe) aí sim pode-se fazer com que seus textboxes respondam aos eventos escolhidos. Nosso colega Mauro Coutinho já discorreu muito bem sobre esse assunto no seguinte tópico: http://www.planilhando.com.br/forum/viewtopic.php?f=10&t=21088.

Procure adaptar às suas necessidades que dará certo.
_______

Outra alternativa seria vc criar normalmente todos os controles que irá usar mas deixá-los invisíveis até que determinada resposta do usuário faça-os surgir durante a execução (propriedade Visible).

_______

Edson

 
Postado : 26/07/2016 12:14 pm
(@edsonbr)
Posts: 0
New Member
 

Vai desculpando, Wagner. Quando abri o tópico não tinha resposta ainda, quando enviei vc já tinha respondido.

 
Postado : 26/07/2016 12:17 pm
(@israelmpb)
Posts: 0
New Member
Topic starter
 

Ok pessoal
Vou dar uma olhada nos exemplos que vcs postaram.
Obrigado pela disponibilidade.

 
Postado : 26/07/2016 12:39 pm
(@israelmpb)
Posts: 0
New Member
Topic starter
 

Ok Wagner
Usei o seu exemplo e deu certo.
O problema é que quando os campos são criados dinamicamente eles ficam por cima dos demais campos que existem no formulario.
Alguém sabe dizer a melhor maneira para contornar esse problema?

 
Postado : 26/07/2016 5:40 pm