Question

i need help in VBA coding: i have nearly 250 TextBox in an user form (is a "matrix" of values), and when user finish fill the boxes, I want to write them in the excel sheet. I could write all 250 lines as

WorkSheets(mysheet).Cells(x,y).Value = TextBox#.Value

but this would be very long. I wanna know if there is a way to make something like a while, and increment the # of the textbox. Thanks, and sorry for my english.

Était-ce utile?

La solution

One option is to use code as follows which will give you each textbox. Another option is if the boxes are named with a trailing number (i.e. Txt1, Txt2, etc.), then you could use other code (i.e. Me.Controls("TextBox" & i).Value

Dim cCTL As Control
Dim iCTR As Integer
iCTR = 0
For Each cCTL In Me.Controls
    If TypeName(cCTL ) = "TextBox" Then
        iCTR = iCTR + 1
        WorkSheets(mysheet).Cells(iCTR,y).Value = cCTL.Value
    End If
 Next cCTL 

Option Two (Since all controls are numbered: Just set the For loop to the proper count of controls, and change the 'mysheet' reference to be the column & row you want.

Dim i   As Integer
For i = 1 to 250
    WorkSheets(mysheet).Cells(i+2,y).Value = Me.Controls("ctr" & i).value
Next i
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top