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.
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