Page 1 of 2

สอบถามการทำ userform scan vba

Posted: Tue Jun 26, 2018 5:43 pm
by Leng
ผมอยากทำให้ Userform เวลายิงบาร์โค๊ดแล้วให้นำข้อมูลที่ใส่ทั้งหมดขึ้นไปในหน้า sheets excel เลย
โดยไม่ต้องสร้างปุ่มกด เพื่อ Add ข้อมูล ผมเลยลองใส่ code ใน combobox

Code: Select all

Private Sub Barcode_Ad_Change()
emptyrow = WorksheetFunction.CountA(Range("A:A")) + 1
Cells(emptyrow, 2).Value = Date_Ad.Value
Cells(emptyrow, 3).Value = Box_Ad.Value
Cells(emptyrow, 4).Value = Around_Ad.Value
Cells(emptyrow, 5).Value = Barcode_Ad.Value
Cells(emptyrow, 9).Value = No_Ad.Value
Cells(emptyrow, 1).Value = ComboBox1.Value

End Sub
แต่สิ่งที่ได้คือโค๊ดที่ทำบันทึกได้โดยไม่ต้องกดปุ่ม
แต่ตอน scan กับพิมพ์บาร์โค๊ดทีละตัว ไม่ได้ยกชุดของบาร์โค๊ดมาทั้งชุด

รบกวนช่วยหน่อยนะครับ
system GF - Copy.rar
(199.68 KiB) Downloaded 14 times

Re: สอบถามการทำ userform scan vba

Posted: Tue Jun 26, 2018 9:48 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Private Sub Barcode_Ad_AfterUpdate()
    emptyrow = WorksheetFunction.CountA(Range("A:A")) + 1
    Cells(emptyrow, 2).Value = Date_Ad.Value
    Cells(emptyrow, 3).Value = Box_Ad.Value
    Cells(emptyrow, 4).Value = Around_Ad.Value
    Cells(emptyrow, 5).Value = Barcode_Ad.Value
    Cells(emptyrow, 9).Value = No_Ad.Value
    Cells(emptyrow, 1).Value = ComboBox1.Value
End Sub

Re: สอบถามการทำ userform scan vba

Posted: Wed Jun 27, 2018 8:41 am
by Leng
ได้ละครับขอบคุณมากครับ
ขอสอบถามอีกข้อครับ
- สามารถยิงบาร์โค๊ดต่อๆ ไปได้เรื่อยๆเลยไหมครับโดยไม่ต้องกดคลิ๊กที่ combobox ทุกครั้งหลังจาก scan 1 ครั้ง

Re: สอบถามการทำ userform scan vba

Posted: Wed Jun 27, 2018 2:07 pm
by Leng
snasui wrote: Tue Jun 26, 2018 9:48 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

Private Sub Barcode_Ad_AfterUpdate()
    emptyrow = WorksheetFunction.CountA(Range("A:A")) + 1
    Cells(emptyrow, 2).Value = Date_Ad.Value
    Cells(emptyrow, 3).Value = Box_Ad.Value
    Cells(emptyrow, 4).Value = Around_Ad.Value
    Cells(emptyrow, 5).Value = Barcode_Ad.Value
    Cells(emptyrow, 9).Value = No_Ad.Value
    Cells(emptyrow, 1).Value = ComboBox1.Value
End Sub
ได้ละครับขอบคุณมากครับ
ขอสอบถามอีกข้อครับ
- สามารถยิงบาร์โค๊ดต่อๆ ไปได้เรื่อยๆเลยไหมครับโดยไม่ต้องกดคลิ๊กที่ combobox ทุกครั้งหลังจาก scan 1 ครั้ง

Re: สอบถามการทำ userform scan vba

Posted: Wed Jun 27, 2018 3:18 pm
by logic
ลอง Set Focus ครับ ~~> https://snasui.com/viewtopic.php?f=3&t=4038#p26130

Re: สอบถามการทำ userform scan vba

Posted: Wed Jun 27, 2018 5:16 pm
by Leng
ผมได้ลองดูแล้วครับแต่ยังไม่ค่อยเข้าใจ
คือผมอยากให้ยิงบาโค้ดใน combobox ต่อได้เรื่อยๆโดยไม่กด ปุ่ม ในการบันทึกข้อมูล รบกวนหน่อยนะครับ

Re: สอบถามการทำ userform scan vba

Posted: Wed Jun 27, 2018 8:28 pm
by snasui
:D ให้ Set Focus กับ ComboBox นั้นหลังจากมีการบันทึกรายการแล้ว โปรแกรมจะวาง Cursor ที่ ComboBox ให้ยิง Barcode ต่อเนื่องไปได้ครับ

Re: สอบถามการทำ userform scan vba

Posted: Thu Jun 28, 2018 7:08 pm
by Leng

Code: Select all

Private Sub userfrom_initialize()
Date_Ad.Value = ""
Box_Ad.Value = ""
Around_Ad.Value = ""
Barcode_Ad.Value = ""
No_Ad.Value
ComboBox1.Value = ""
Barcode_Ad.SetFocus
End Sub
Private Sub Barcode_Ad_AfterUpdate()
    emptyrow = WorksheetFunction.CountA(Range("A:A")) + 1
    Cells(emptyrow, 2).Value = Date_Ad.Value
    Cells(emptyrow, 3).Value = Box_Ad.Value
    Cells(emptyrow, 4).Value = Around_Ad.Value
    Cells(emptyrow, 5).Value = Barcode_Ad.Value
    Cells(emptyrow, 9).Value = No_Ad.Value
    Cells(emptyrow, 1).Value = ComboBox1.Value
ผมได้เอามาลองใส่ดูแล้วครับแต่ยังไม่ได้ รบกวนอาจารย์ช่วยหน่อยนะครับผมทำมาหลายวันแล้วแต่ติดแค่อยากให้ตัว scan ต่อเนื่องได้

Re: สอบถามการทำ userform scan vba

Posted: Thu Jun 28, 2018 7:10 pm
by snasui
:D การถามตอบให้ถามในฟอรัม อย่าส่งไปทางข้อความส่วนตัวครับ

การ Set Focus ในกรณีนี้ให้เขียนไว้ก่อน End Sub ใน Code ตามโพสต์ #2 ครับ

หากยังไม่ได้ให้แนบไฟล์ที่ได้ปรับ Code มาแล้วจะได้ช่วยดูให้ได้ อย่าโพสต์มาเฉพาะ Code ครับ

Re: สอบถามการทำ userform scan vba

Posted: Thu Jun 28, 2018 7:44 pm
by Leng

Code: Select all

Private Sub userfrom_initialize()
Date_Ad.Value = ""
Box_Ad.Value = ""
Around_Ad.Value = ""
Barcode_Ad.Value = ""
No_Ad.Value= ""
ComboBox1.Value = ""
Barcode_Ad.SetFocus
End Sub
Private Sub Barcode_Ad_AfterUpdate()
    emptyrow = WorksheetFunction.CountA(Range("A:A")) + 1
    Cells(emptyrow, 2).Value = Date_Ad.Value
    Cells(emptyrow, 3).Value = Box_Ad.Value
    Cells(emptyrow, 4).Value = Around_Ad.Value
    Cells(emptyrow, 5).Value = Barcode_Ad.Value
    Cells(emptyrow, 9).Value = No_Ad.Value
    Cells(emptyrow, 1).Value = ComboBox1.Value
    End Sub
    
ต้องขอโทษด้วยครับ ผมรบกวนอาจารย์ช่วยหน่อยครับ ผมไม่สามารถทำให้มัน run ต่อเนื่องได้โดยใช้ปืนบาร์โค๊ดยิง
ผมอยากให้ยิงบาร์โค๊ดต่อๆ ไปได้เรื่อยๆครับโดยบันทึกโค๊ดแรกและเริ่มโค๊ดใหม่และบันทึกต่อไปเรื่อยๆโดยไม่ต้องกดคลิ๊กที่ combobox ทุกครั้งหลังจาก scan 1 ครั้ง

Re: สอบถามการทำ userform scan vba

Posted: Thu Jun 28, 2018 7:48 pm
by Leng

Code: Select all

Private Sub userfrom_initialize()
    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox3.Value = ""
    TextBox4.Value = ""
    TextBox5.Value = ""
    TextBox6.Value = ""
    Barcode_Ad.SetFocus
End Sub
Private Sub Barcode_Ad_AfterUpdate()
    Barcode_Ad.SetFocus
    emptyrow = WorksheetFunction.CountA(Range("A:A")) + 1
    Worksheets("Add01").Cells(emptyrow, 2).Value = Date_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 3).Value = Box_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 4).Value = Around_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 5).Value = Barcode_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 9).Value = No_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 1).Value = ComboBox1.Value
    Barcode_Ad.SetFocus
End Sub
ต้องขอโทษด้วยครับ ผมรบกวนอาจารย์ช่วยหน่อยครับ ผมไม่สามารถทำให้มัน run ต่อเนื่องได้โดยใช้ปืนบาร์โค๊ดยิง
ผมอยากให้ยิงบาร์โค๊ดต่อๆ ไปได้เรื่อยๆครับโดยบันทึกโค๊ดแรกและเริ่มโค๊ดใหม่และบันทึกต่อไปเรื่อยๆโดยไม่ต้องกดคลิ๊กที่ combobox ทุกครั้งหลังจาก scan 1 ครั้ง

Re: สอบถามการทำ userform scan vba

Posted: Thu Jun 28, 2018 7:57 pm
by snasui
:D ลองปรับเป็นด้านล่างครับ

Code: Select all

Private Sub Barcode_Ad_AfterUpdate()
If Barcode_Ad.Text <> "" then
    emptyrow = WorksheetFunction.CountA(Range("A:A")) + 1
    Worksheets("Add01").Cells(emptyrow, 2).Value = Date_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 3).Value = Box_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 4).Value = Around_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 5).Value = Barcode_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 9).Value = No_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 1).Value = ComboBox1.Value
    Barcode_Ad.Text = ""
    Barcode_Ad.SetFocus
End if
End Sub

Re: สอบถามการทำ userform scan vba

Posted: Thu Jun 28, 2018 8:04 pm
by Leng
ผมได้ลองทำแล้วครับแต่ก็ยังไม่ได้ครับ คือ scan แล้วแต่ยัง ไม่สามารถ scan ต่อได้ครับ รบกวนอาจารย์ด้วยครับ

Re: สอบถามการทำ userform scan vba

Posted: Thu Jun 28, 2018 8:10 pm
by snasui
:D ชว่ยขยายความคำว่าไม่สามารถ Scan ต่อเนื่องได้มาด้วยว่าเมื่อยิง Barcode แล้วเกิด Barcode ขึ้นหรือไม่ อย่างไร ฯลฯ ครับ

Re: สอบถามการทำ userform scan vba

Posted: Thu Jun 28, 2018 8:15 pm
by Leng
จากที่ได้ลองปรับโค๊ดที่อาจารย์ให้มา ผลที่ได้คือ
-สามารถ scan ได้และข้อมูลขึ้นครับ ข้อมูลเก่าจาก combobox ก็หายไป แต่พอ scan รอบ 2 ไม่สามารถ scanได้ครับ ยกเว้นต้องไปคลิ๊กที่ combobox แล้ว scan ใหม่ ถึงจะมีข้อมูลขึ้นครับ

Re: สอบถามการทำ userform scan vba

Posted: Thu Jun 28, 2018 8:33 pm
by Leng
ผมขอรบกวนอาจารย์ด้วยจริงๆครับ

Re: สอบถามการทำ userform scan vba

Posted: Thu Jun 28, 2018 8:49 pm
by snasui
Leng wrote: Thu Jun 28, 2018 8:33 pm ผมขอรบกวนอาจารย์ด้วยจริงๆครับ
:D ข้อความด้านบนนี้ไม่จำเป็นต้องโพสต์ ผมไม่ปล่อยให้คำถามในฟอรัมนี้ไม่มีคำตอบครับ

ปรับ Code ใหม่เป็นด้านล่างครับ

Code: Select all

Private Sub Barcode_Ad_AfterUpdate()
    emptyrow = WorksheetFunction.CountA(Range("A:A")) + 1
    Worksheets("Add01").Cells(emptyrow, 2).Value = Date_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 3).Value = Box_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 4).Value = Around_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 5).Value = Barcode_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 9).Value = No_Ad.Value
    Worksheets("Add01").Cells(emptyrow, 1).Value = ComboBox1.Value
End Sub

Private Sub Barcode_Ad_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Barcode_Ad.Value <> "" Then
        Cancel = True
        Barcode_Ad.Text = ""
    End If
End Sub

Re: สอบถามการทำ userform scan vba

Posted: Fri Jun 29, 2018 8:23 am
by Leng
ได้แล้วครับขอบคุณมากครับ

Re: สอบถามการทำ userform scan vba

Posted: Fri Jun 29, 2018 8:48 am
by Leng
ได้แล้วครับ แต่เวลากด botton อื่นข้อมูลก็บันทึกไปด้วย เราสามารถแก้อะไรได้ไหมครับ

Re: สอบถามการทำ userform scan vba

Posted: Fri Jun 29, 2018 8:32 pm
by snasui
Leng wrote: Fri Jun 29, 2018 8:48 am ได้แล้วครับ แต่เวลากด botton อื่นข้อมูลก็บันทึกไปด้วย เราสามารถแก้อะไรได้ไหมครับ
:D กดปุ่มไหนถึงทำให้ข้อมูลถูกบันทึกไปด้วยช่วยแจ้งมาด้วยครับ