Dear members
I have a userform with a listbox and several textboxes.The user selects an order no from the listbox and the textboxes are populated with details from that order. The user then manualy fills in some other textboxes and clicks a button whereupon all the details are fed onto the next vacant row of a worksheet. All the textboxes are then returned to a null and the userform becomes available to record the next order. Or at least thats what is meant to happen, and indeed did happen whilst I was working in the VBA environment.
When I went live however the first record was dealt with properly but the text boxes did not populate, for subsequent entries. Here is the basic code I am using.
Private Sub UserForm_Activate()
UserForm1.TextBox12.Value = Format(Now, "dd/mm/yyyy")
End Sub
Private Sub ListBox1_AfterUpdate() ' To populate Textboxes and to record values
'manualy entered
Dim OrdersAr()
Sheets("AllLabels").Select
Range("C4").Select
n = Range("Labels").Rows.Count
ReDim OrdersAr(n, 10)
OrdersAr = Range("Labels")
Sheets("AllLabels").Select
OrderNo = UserForm1.ListBox1.Value
With UserForm1
For A = 1 To n
If OrderNo = OrdersAr(A, 2) Then
.TextBox1.Value = OrdersAr(A, 1)
.TextBox3.Value = OrdersAr(A, 10)
Sheets("DownLoad").Range("Y36").Value = OrdersAr(A, 10)
.TextBox9.Value = OrdersAr(A, 4)
'Etc etc
.TextBox4.Value = OrdersAr(A, 9)
.TextBox13.Value = Sheets("DownLoad").Range("Y31").Value
End If
Next A
End With
End Sub
a Private Sub CommandButton1_Click() ' The Enter Record Button
a EnterRecord
a End Sub
Sub EnterRecord() 'puts all data into worksheet
Dim D As Date
Dim Cols1 As Integer
Dim Cols2 As Integer
Sheets("ENTEREDOs").Activate
Range("B4").Select
y = ActiveCell.CurrentRegion.Rows.Count
Range("B4").Offset(y, 0).Select
With UserForm1
D = .TextBox12.Value
D = Format(CDate(D), "dd/mm/yyyy")
Range("B4").Offset(y, 0).Value = D
Range("B4").Offset(y, 1).Value = .TextBox1.Value
.ListBox1.BoundColumn = 1
Range("B4").Offset(y, 2).Value = .ListBox1.Value 'OrderNo
.ListBox1.BoundColumn = 2
Range("B4").Offset(y, 3).Value = .ListBox1.Value 'JobName
Range("B4").Offset(y, 10).Value = .TextBox6.Value ' manualy entered
Range("B4").Offset(y, 11).Value = .ListBox3.Value
Range("B4").Offset(y, 12).Value = .TextBox4.Value
Range("B4").Offset(y, 13).Value = .TextBox7.Value 'manualy entered
etc etc
End If
End With
With UserForm1 ' Empties all textboxes etc for next use
.TextBox9.Value = ""
.ListBox2.Value = ""
etc etc
..OptionButton3.Value = False
.TextBox5.Visible = True
.TextBox15.Visible = True
End With
End Sub
I have cut out a lot of the code detail so I hope it still makes sense.
I suspect that the problem lies with the Sub I have marked "a" but I dont know how to get round it.
Can some body please point me in the right direction
John
Bookmarks