Page 1 of 1
ถามเรื่อง list box กับ Text Box ครับ
Posted: Fri Jul 12, 2013 3:56 pm
by khainui
1. ตามไฟล์ที่แนบ ผมยังหาวิธีนำข้อมูลจาก listbox audit_name
ไปวางที่ column e f g ใน sheet job ไม่ได้ครับ ต้องเขียนกำหนด ตัวแปรอย่างไรครับ ตอนนี้จะเป็นแค่ active cell
2. Text box Run_no ใช้วิธีดึงข้อมูลจาก cell a2 มา ต้องเขียนคำสั่งอย่างไรให้เหมือนกับสูตร lookup ใน ช่อง A2 ใน Textbox โดยตรงครับ
ขอบคุณครับ
Re: ถามเรื่อง list box กับ Text Box ครับ
Posted: Fri Jul 12, 2013 7:04 pm
by khainui
อัพไฟล์ใหม่ครับ ผมเปลี่ยนวันที่เป็น Text Box แทนรู้สึก Date Picker excel 2010 ไม่รองรับ
Re: ถามเรื่อง list box กับ Text Box ครับ
Posted: Fri Jul 12, 2013 11:01 pm
by snasui
ลองดูตัวอย่างการปรับ Code ตามด้านล่าง โดยให้ลบ Row Source ของ ListBox ทิ้งไปก่อน ถ้าต้องการจะใช้หัวคอลัมน์ใน ListBox ให้ Loop ค่าคอลัมน์ C:D ในชีท Job ไปวางในตำแหน่งอื่นก่อนแล้วค่อยนำค่านั้นเอาไว้มาใช้ใน Rowsource สำหรับ Code ตามด้านล่างใช้การ Loop คอลัมน์ C:D แล้ว Add เข้าไปตรง ๆ ใน ListBox
Code: Select all
Dim i As Integer
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdOK_Click()
Worksheets("job").Cells(i, 1).Value = run_no.Text
Worksheets("job").Cells(i, 2).Value = DTpicker1.Text
Worksheets("job").Cells(i, 3).Value = Job_descrip.Text
Worksheets("job").Cells(i, 4).Value = Audit_team.Text
With Audit_name
Sheets("Job").Range("a" & Rows.Count).End(xlUp).Offset(0, 4).Select
For x = 0 To .ListCount - 1
If .Selected(x) Then
ActiveCell.Value = .List(x)
ActiveCell.Offset(0, 1).Select
End If
Next x
End With
Unload Me
MsgBox "บันทึกรายการแล้ว"
End Sub
Private Sub UserForm_Initialize()
Dim rAll As Range, r As Range
i = WorksheetFunction.CountA(Worksheets("job").Columns("a:a")) + 1
audit_job.run_no = i
With Sheets("Job")
Set rAll = .Range("c2", .Range("c" & Rows.Count).End(xlUp))
End With
For Each r In rAll
With audit_job.Audit_name
.ColumnCount = 2
.ColumnWidths = "90;60"
.AddItem
.Column(0, .ListCount - 1) = r
.Column(1, .ListCount - 1) = r.Offset(0, 1)
End With
Next r
End Sub
Re: ถามเรื่อง list box กับ Text Box ครับ
Posted: Fri Jul 12, 2013 11:36 pm
by khainui
Code: Select all
Dim i As Integer
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdOK_Click()
Worksheets("job").Cells(i, 1).Value = run_no.Value
Worksheets("job").Cells(i, 2).Value = DTpicker1.Value
Worksheets("job").Cells(i, 3).Value = Job_descrip
Worksheets("job").Cells(i, 4).Value = Audit_team
With Audit_name
Sheets("Job").Range("a" & Rows.Count).End(xlUp).Offset(0, 4).Select ติดที่แถวนี้ครับ
For x = 0 To .ListCount - 1
If .Selected(x) Then
ActiveCell.Value = .List(x)
ActiveCell.Offset(0, 1).Select
End If
Next x
End With
Unload Me
MsgBox "ºÑ¹·Ö¡ÃÒ¡ÒÃáÅéÇ"
End Sub
Private Sub UserForm_Initialize()
Dim rAll As Range, r As Range
i = WorksheetFunction.CountA(Worksheets("job").Columns("a:a")) + 1
audit_job.run_no = i
With Sheets("dataIn") เปลี่ยนเป็นดึงข้อมูลจาก dataIn
Set rAll = .Range("c2", .Range("c" & Rows.Count).End(xlUp))
End With
For Each r In rAll
With audit_job.Audit_name
.ColumnCount = 2
.ColumnWidths = "90;60"
.AddItem
.Column(0, .ListCount - 1) = r
.Column(1, .ListCount - 1) = r.Offset(0, 1)
End With
Next r
End Sub
มันติดตรงแถว Sheets("Job").Range("a" & Rows.Count).End(xlUp).Offset(0, 4).Select มันไม่ส่งข้อมูลไป sheet "job"
แล้วตรง userform initialize แถวที่เป็นสีแดงผมเปลี่ยนเป็นดึงจาก sheet dataIn range c2 ครับ
เพิ่มเติมหน่อยครับคือ ใน listbox จะให้ติ๊กผู้ตรวจ แล้วนำข้อมูลเฉพาะที่ติ๊กซึ่งเป็นเลข ID ไปบันทึกที่ sheet job column เจ้าหน้าที่ตรวจสอบ 1 2 และ 3 ครับ ถ้าติ๊ก 4 คน ก็วิ่งไปที่ column 4 ด้วยครับ
Re: ถามเรื่อง list box กับ Text Box ครับ
Posted: Fri Jul 12, 2013 11:56 pm
by snasui
ผมยังไม่เปิดไฟล์นะครับ สำหรับ Code
Sheets("Job").Range("a" & Rows.Count).End(xlUp).Offset(0, 4).Select
หากว่าเราไม่อยู่ใน Sheet Job มันจะไม่ Select ให้ จะต้อง Select เป็นลำดับไป เช่น
Code: Select all
Sheets("Job").Select
Range("a" & Rows.Count).End(xlUp).Offset(0, 4).Select
Re: ถามเรื่อง list box กับ Text Box ครับ
Posted: Sat Jul 13, 2013 12:00 am
by snasui
snasui wrote:เพิ่มเติมหน่อยครับคือ ใน listbox จะให้ติ๊กผู้ตรวจ แล้วนำข้อมูลเฉพาะที่ติ๊กซึ่งเป็นเลข ID ไปบันทึกที่ sheet job column เจ้าหน้าที่ตรวจสอบ 1 2 และ 3 ครับ ถ้าติ๊ก 4 คน ก็วิ่งไปที่ column 4 ด้วยครับ
ถ้า Tick 1 กับ 4 แล้วจะวิ่งอย่างไรครับ
Re: ถามเรื่อง list box กับ Text Box ครับ
Posted: Sat Jul 13, 2013 8:18 am
by khainui
OK ครับพอย้ายปุ่ม OpenForm ไปไว้ Sheet job ก็ใช้ได้ครับ แต่ความต้องการคือปุ่ม Open Form อยู่อีก sheet หนึ่ง (Sheet "dataIn") แล้วส่งข้อมูลในช่อง listbox (audit_name) ไปที่ sheet "job" ครับ
Re: ถามเรื่อง list box กับ Text Box ครับ
Posted: Sat Jul 13, 2013 8:33 am
by snasui
ที่ผมตอบไปไม่ได้หมายความว่าให้ย้าย Button ไปไว้ในชีท Job สำหรับ Button จะอยูที่ไหนก็ได้ ไม่จำเป็นว่าต้องอยู่ในชีท Job แต่การใช้วิธีการ Select Data ด้วย ActiveCell ตามที่เขียนมาแล้วนั้นจะต้องไป Active เซลล์ในชีท Job นั่นหมายความว่า หากไม่ได้อยู่ในชีท Job ก็ต้องเขียน Code ให้ Select Sheet, Select Cell เป็นลำดับไปถึงจะทำงานได้ เขียนรวบที่เดียวไม่ได้ ซึ่งผมได้เขียนเป็นตัวอย่างไว้แล้วด้านบน หากทำตามนั้นแล้วติดปัญหาให้นำ Code ที่ Update แล้วมาถามกันครับ
Re: ถามเรื่อง list box กับ Text Box ครับ
Posted: Sat Jul 13, 2013 8:46 am
by khainui
อ๋อเข้าใจแล้วครับ แล้วลองแก้คำสั่งใหม่ครับ ตาหวานอ่านไม่ครบครับ