Page 1 of 2
สอบถาม Listbox Use KeyPress
Posted: Tue Aug 07, 2018 3:49 pm
by Leng
ผมอยากทำแบบ link นี้ครับแต่พอทำตามแล้วขึ้น Error ทั้งที่โค๊ดก็ทำตามผมก็เช็คทุกอย่างตามเค้าแล้ว
แต่ก็ยังทำไม่สำเร็จรบกวนอาจารย์เพื่อนๆช่วยดูหน่อยครับ
https://www.youtube.com/watch?v=xAplx9LPmk4
Re: สอบถาม Listbox Use KeyPress
Posted: Tue Aug 07, 2018 7:21 pm
by snasui
กรุณาอธิบายมาพอสังเขปว่าต้องการจะทำอะไรเพื่อสะดวกในการค้นหาของเพื่อนสมาชิกครับ
Re: สอบถาม Listbox Use KeyPress
Posted: Wed Aug 08, 2018 9:59 am
by Arm_anucha
ที่บรรทัดนี้เขียนชื่อ Sheeet1 เลยรันไม่ได้ครับลบ e ออกไป 1 ตัวก็สามารถใช้ได้แล้วครับ
Code: Select all
For i = 2 To Application.WorksheetFunction.CountA(Sheeet1.Range("A:A"))
Re: สอบถาม Listbox Use KeyPress
Posted: Wed Aug 08, 2018 10:13 am
by Leng
ผมได้แก้แล้วครับแต่ข้อมูลไม่ขึ้นครับ
Re: สอบถาม Listbox Use KeyPress
Posted: Wed Aug 08, 2018 7:11 pm
by snasui
Leng wrote: Wed Aug 08, 2018 10:13 am
ผมได้แก้แล้วครับแต่ข้อมูลไม่ขึ้นครับ
กรุณาทำตามโพสต์ด้านล่างนี้ด้วยครับ
snasui wrote: Tue Aug 07, 2018 7:21 pm
กรุณาอธิบายมาพอสังเขปว่าต้องการจะทำอะไรเพื่อสะดวกในการค้นหาของเพื่อนสมาชิกครับ
Re: สอบถาม Listbox Use KeyPress
Posted: Wed Aug 08, 2018 7:21 pm
by Leng
สิ่งที่ต้องการครับ
- ผมต้องการ List สรุปข้อมูลครับ เช่นถ้าผม click ที่หมวดหมู่ Snaks ก็จะขึ้น ข้อมูล Snaks ทุกวัน ที่ลงข้อมูลไว้ทั้งหมดพร้อมผลรวมครับ
Re: สอบถาม Listbox Use KeyPress
Posted: Wed Aug 08, 2018 8:38 pm
by snasui
ลบ Code ใน Module1 ทิ้งทั้งหมดครับ
ไปที่ UserForm1 แก้ไข
UserForm1_Initialize
เป็น
UserForm_Initialize
และ แก้ไข
Worksheet.sheet("sheet1")
เป็น
Worksheets("sheet1")
> Save แล้วเปิดไฟล์มาใหม่ > ทดสอบการทำงาน
Re: สอบถาม Listbox Use KeyPress
Posted: Wed Aug 08, 2018 10:21 pm
by Leng
ได้แล้วครับขอบพระคุณมากครับ
Re: สอบถาม Listbox Use KeyPress
Posted: Fri Aug 10, 2018 2:55 pm
by Leng
Code: Select all
Private Sub UserForm_Initialize()
Dim i As Long
For i = 4 To Application.WorksheetFunction.CountA(Sheet1.Range("A:A"))
a = Application.WorksheetFunction.CountIf(Sheet1.Range("D" & 4, "D" & i), _
Sheet1.Cells(i, 4))
If a = 1 Then
Me.ListBox1.AddItem Sheet1.Cells(i, 4)
End If
Next i
End Sub
Private Sub CommandButton1_Click()
Me.ListBox1.Clear
Call UserForm_Initialize
Me.CommandButton1.Enabled = False
End Sub
Private Sub ListBox1_Click()
Me.TextBox1 = Me.ListBox1.Column(0)
End Sub
Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim i As Long
Me.ListBox1.Clear
Me.ListBox1.AddItem
For x = 0 To 8
Me.ListBox1.List(0, x) = Sheet1.Cells(1, x + 1)
Next x
For i = 2 To Sheet1.Range("A1048576").End(xlUp).Row
If Sheet1.Cells(i, 2) = Me.TextBox1 Then
Me.ListBox1.AddItem
For c = 0 To 8
Me.ListBox1.List(ListBox1.ListCount - 1, c) = Sheet1.Cells(i, c + 1)
Next c
End If
Next i
For d = 1 To Me.ListBox1.ListCount - 1
Sum = Sum + Val(Me.ListBox1.List(h, 3))
Next d
Me.ListBox1.AddItem
Me.ListBox1.List(ListBox1.ListCount - 1, 2) = "Total Price"
Me.ListBox1.List(ListBox1.ListCount - 1, 3) = Sum & ".00"
Me.CommandButton1.Enabled = True
Me.ListBox1.Selected(0) = True
End Sub
รบกวนอาจาย์ดู code ให้หน่อยครับปัญหาคือ
ขอมูลไม่ขึ้นครับ
Re: สอบถาม Listbox Use KeyPress
Posted: Sat Aug 11, 2018 7:35 am
by snasui
อธิบายมาว่าได้ทำเพิ่มตรงไหน อย่างไร มาเสมอ จะได้เข้าถึงปัญหาได้โดยไวครับ
Re: สอบถาม Listbox Use KeyPress
Posted: Tue Aug 14, 2018 8:09 am
by Leng
ผมเพิ่มจาก 4 Column เป็น 8 Column ครับ อยากให้มีผลรวมทั้งหมดของช่องที่ 8 ครับแต่ที่ทำมาข้อมูลไม่ขึ้นครับ
Re: สอบถาม Listbox Use KeyPress
Posted: Tue Aug 14, 2018 2:35 pm
by Leng
ปัญหาอีกอย่างคือเวลาข้อมูลโชว์ใน list box ตรงวันที่ จะเป็น ด/ว/ป ครับผมอยากให้เป็น ว/ด/ป
Re: สอบถาม Listbox Use KeyPress
Posted: Tue Aug 14, 2018 7:01 pm
by snasui
เทียบค่าคอลัมน์ไม่ถูกต้องครับ
วันที่ในคอลัมน์ A ของ Sheet1 จะต้องเป็นปี
ค.ศ. ไม่ใช่ปี พ.ศ. ครับ
ตัวอย่างการปรับ Code คือด้านล่าง
Code: Select all
'Other code
For i = 2 To Sheet1.Range("A1048576").End(xlUp).Row
If Sheet1.Cells(i, 4) = CLng(Me.TextBox1.Text) Then
Me.ListBox1.AddItem
For c = 0 To 8
If c + 1 = 1 Then
Me.ListBox1.List(ListBox1.ListCount - 1, c) = Format( _
Sheet1.Cells(i, c + 1).Value2, "dd/mm/yyyy")
Else
Me.ListBox1.List(ListBox1.ListCount - 1, c) = Sheet1.Cells(i, c + 1)
End If
Next c
End If
Next i
'Other code
Re: สอบถาม Listbox Use KeyPress
Posted: Tue Aug 14, 2018 7:34 pm
by Leng
Code: Select all
Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim i As Long
Me.ListBox1.Clear
Me.ListBox1.AddItem
'Other code
For i = 2 To Sheet1.Range("A1048576").End(xlUp).Row
If Sheet1.Cells(i, 4) = CLng(Me.TextBox1.Text) Then
Me.ListBox1.AddItem
For c = 0 To 8
If c + 1 = 1 Then
Me.ListBox1.List(ListBox1.ListCount - 1, c) = Format( _
Sheet1.Cells(i, c + 1).Value2, "dd/mm/yyyy")
Else
Me.ListBox1.List(ListBox1.ListCount - 1, c) = Sheet1.Cells(i, c + 1)
End If
Next c
End If
Next i
'Other code
For d = 1 To Me.ListBox1.ListCount - 1
Sum = Sum + Val(Me.ListBox1.List(d, 3))
Next d
Me.ListBox1.AddItem
Me.ListBox1.List(ListBox1.ListCount - 1, 2) = "Total Price"
Me.ListBox1.List(ListBox1.ListCount - 1, 3) = Sum & ".00"
Me.CommandButton1.Enabled = True
Me.ListBox1.Selected(0) = True
End Sub
อาจารย์ครับได้แล้วครับแต่ติดปัญหาคือ เวลาsum ข้อมูลไม่ตรงครับ ผมอยาก sum cloumn H ครับ
Re: สอบถาม Listbox Use KeyPress
Posted: Tue Aug 14, 2018 7:47 pm
by snasui
ตัวอย่างการปรับ Code ครับ
Code: Select all
'Other code
For d = 1 To Me.ListBox1.ListCount - 1
Sum = Sum + Val(Me.ListBox1.List(d, 2))
Next d
Me.ListBox1.AddItem
Me.ListBox1.List(ListBox1.ListCount - 1, 2) = "Total Price"
Me.ListBox1.List(ListBox1.ListCount - 1, 3) = Format(Sum, "#,##0.00")
'Other code
Re: สอบถาม Listbox Use KeyPress
Posted: Tue Aug 14, 2018 7:56 pm
by Leng
อาจารย์ครับทำไมผลรวมถึงไม่ตรงกับค่าจริงครับ
Re: สอบถาม Listbox Use KeyPress
Posted: Tue Aug 14, 2018 7:58 pm
by snasui
ค่าจริงคืออะไรก็ให้ไปรวมค่านั้น ผมเพียงแต่เขียน Code ให้เป็นตัวอย่าง กรุณาทำควมเข้าใจและปรับปรุงเอง ติดแล้วค่อยถามกันต่อครับ
Re: สอบถาม Listbox Use KeyPress
Posted: Tue Aug 14, 2018 8:11 pm
by Leng
ได้แล้วครับขอบพระคุณมากครับ
Re: สอบถาม Listbox Use KeyPress
Posted: Wed Aug 22, 2018 5:18 pm
by Leng
อาจารย์ครับติดปัญหาครับคือ barcode ขึ้นไม่หมดครับรบกวนอาจารย์ช่วยดูหน่อยครับ
Re: สอบถาม Listbox Use KeyPress
Posted: Wed Aug 22, 2018 8:17 pm
by snasui
ช่วยอธิบายเพิ่มว่าขึ้นไม่หมดอย่างไร พิจารณาอย่างไรว่าขึ้นหมดหรือขึ้นไม่หมด จะได้เข้าถึงปัญหาโดยไวครับ