2017-10-04 1 views
0

S'il vous plaît j'ai besoin de votre aide, j'ai un problème avec le code suivant, je veux écrire dans différentes cellules toutes les valeurs que l'utilisateur entre, dans le Private Sub CommandButton1_Click() je écris seulement 3 d'entre eux, mais je peux 't font que même la valeur de poing apparaît, apparaît seulement une erreur:Valeurs TextBox dans une boucle

object doesn´t support this property or method.

Dim Label1 As Object 
Dim txtB1 As Control 

For NL = 1 To NumeroLineas 
    Set txtB1 = UserForm2.Controls.Add("Forms.TextBox.1", "TxtBx" & NL, True) 

    With txtB1 
     .Name = "TxtBx" & NL 
     .Height = 25.5 
     .Width = 150 
     .Left = 150 
     .Top = 18 * NL * 2 
    End With  
Next NL 
UserForm2.Show 

'This is UserForm2 
Private Sub CommandButton1_Click() 
    Cells(10, 10) = Controls.TxtBx1.Value 
    Cells(10, 11) = Controls.TxtBx2.Value 
    Cells(10, 12) = Controls.TxtBx3.Value 
End sub 
+0

Vous êtes l'expert au sujet de votre cas et vous savez tout à ce sujet. S'il vous plaît ne supposez pas que d'autres personnes en ont également la pleine connaissance. Veuillez être plus précis et détaillé: Que voulez-vous réaliser? Qu'est-ce qui fonctionne déjà? Qu'est-ce qui ne fonctionne pas comme il se doit? Quels sont les messages d'erreur? – peakpeak

Répondre

0

Vous devez adresser les commandes du code généré comme ceci: Controls.Item("ControlName").Value

Ainsi, les éléments suivants doivent travailler:

Private Sub CommandButton1_Click() 
    Cells(10, 10) = Controls("TxtBx1").Value 
    Cells(10, 11) = Controls("TxtBx2").Value 
    Cells(10, 12) = Controls("TxtBx3").Value 

    'This works too 
    'Cells(10, 10) = Controls.Item("TxtBx1").Value 
End sub 

En outre, le paramètre de la propriété Textbox.Name est redondant.
Cette ligne n'est pas nécessaire:

.Name = "TxtBx" & NL