Proponuję inne podejście do tematu.
Wstaw Class Module i nazwij go tekstowe.
Wklej do niego taki kod
Public WithEvents Tekst As MSForms.TextBox
Private Sub Tekst_Change()
MsgBox UserForm1.ActiveControl.Name
End Sub
Twoją procedurę zmień na taką
' zakładam z góry że nie bedzie więcej Zetów niż 20 i Do niż 20
Dim PoleTekstowe(1 To 20, 1 To 2) As New tekstowe
Dim pozycja As Integer ' globalne
Dim ktory As Integer ' globalne
Private Sub CommandButton1_Click()
ktory = ktory + 1
pozycja = pozycja + 5
Dim txtZ As Object ' TextBox
Dim txtDo As Object 'TextBox
Set txtZ = UserForm1.Controls.Add("Forms.TextBox.1")
Set txtDo = UserForm1.Controls.Add("Forms.TextBox.1")
With txtZ
.Name = "Z" & ktory
.Text = "Podaj skąd"
.Left = 10
.Width = 100
.Top = 10 + (pozycja * 5)
End With
With txtDo
.Name = "Do" & ktory
.Text = "Podaj dokąd"
.Left = 150
.Width = 100
.Top = 10 + (pozycja * 5)
End With
Set PoleTekstowe(ktory, 1).Tekst = Controls("Z" & ktory)
Set PoleTekstowe(ktory, 2).Tekst = Controls("Do" & ktory)
End Sub
Pozdrawiam |