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