Olá a todos!
Bem, eu sou iniciante na parte de VBA e a minha dúvida é a seguinte:
Eu tenho um userform com um Textbox tbxQtdeQuest de controle de quantidade e um botão Ok btnOk. Após o usuário inserir a quantidade desejada e clicar no botão Ok, o programa deverá criar a quantidade de Labels e Textbox desejados pelo usuário. (Ex.: Quantidade 5: Deverá criar 5 labels e 5 TextBoxes).
O problema é que eu preciso criar os labels e combobox dinamicamente e a única solução que eu vejo que talvez seja possível é criar os labels e textbox através de um Array, ou seja, criar um loop e dentro do loop criar os objetos.
Abaixo segue o código:
Private Sub btnOk_Click()
' Cria a variável de controle do loop
Dim i As Integer
' Cria a variável de controle da quantidade
Dim vQtde As Integer
' Verifica se foi digitada uma quantidade no Textbox Quantidade
If tbxQtdeQuest.Value = "" Then
MsgBox ("O campo Quantidade de questões é obrigatório!")
tbxQtdeQuest.SetFocus
Exit Sub
End If
' Pega o valor digitado no campo Quantidade
vQtde = tbxQtdeQuest.Value
' Cria os campos de acordo com a quantidade no campo quantidade
For i = 1 To vQtde
' Adicionando um novo controle
Dim lblTeste As MSForms.Label ' *Preciso de um modo para que possa criar mais de um label aqui de acordo com o campo Qtde*
' Seta o label Teste
Set lblTeste = Me.Controls.Add("Forms.Label.1", lbl1 & i, True)
' Cria o nome do Label e adiciona + i
lblTeste.Name = "lblTeste" & i
' Propriedades do Label
lblTeste.Width = 336
lblTeste.Height = 12
lblTeste.Left = 6
' Aumentar a altura de acordo com o contador
lblTeste.Top = 10 + 20 * i
lblTeste.Caption = "Questão " & i
Set lblTeste = Nothing
Next i
End Sub
Postado : 04/02/2015 8:41 am