Load UserForm1
Load UserForm2
n = 2
UserForms(n - 1).Show
Private Sub CommandButton1_Click()
Load UserForm2
Load UserForm1
prepare
n = 2
ComboBox1.Text = "userform" & n
If ComboBox1.ListIndex >= 0 Then UserForms(ComboBox1.ListIndex).Show
End Sub
Private Sub prepare()
ComboBox1.Clear
For i = 0 To UserForms.Count - 1
ComboBox1.AddItem UserForms(i).Name
ComboBox1.List(i, 1) = i
Next
End Sub
Sub lancementUSF()
Dim sVariable As String
i=2
sVariable = "UserForm" & i
VBA.UserForms.Add(sVariable).Show
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionCharger, oui. Utiliser ensuite à partir d'une chaîne de caractères, non ...
Sub test()
Dim oUserForm As Object
Dim usfName As String
usfName = "Userform" & 1
Set oUserForm = UserForms.Add(usfName)
oUserForm.TextBox1.Text = "ceci est un test"
oUserForm.Show
End Sub
' A placer dans un MODULE
Global Usf() As Object
Sub test()
Dim oUserForm As Object
Dim usfName As String
For i = 1 To 2
ReDim Preserve Usf(i + 1)
usfName = "Userform" & i
Set Usf(i) = UserForms.Add(usfName)
Next
'afficher le userform1
Usf(1).Show
End Sub
j'aimerai combiner un string "Userform" et un integer 2 pour utiliser des commandes du style UserForm2.combobox1.value = ...
Usf(2).combobox1.value = ...
Private Sub montre(usf As String)
For Each u In UserForms
If u.Name = usf Then u.Show
Next
End Sub
n = 2
montre "UserForm" & n
Private Sub CommandButton1_Click()
Load UserForm1
Load UserForm2
Dim n As Integer
n = 2
On Error Resume Next
Set toto = dis("UserForm" & n)
toto.TextBox1.Text = "bbb"
toto.Show
On Error GoTo 0
End Sub
Private Function dis(usf As String) As Object
Set dis = Nothing
For Each u In UserForms
If u.Name = usf Then Set dis = u
Next
End Function