snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ
ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Leng
Member
Posts: 225 Joined: Tue Jun 26, 2018 5:19 pm
#1
Post
by Leng » Tue Jun 26, 2018 5:43 pm
ผมอยากทำให้ 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 กับพิมพ์บาร์โค๊ดทีละตัว ไม่ได้ยกชุดของบาร์โค๊ดมาทั้งชุด
รบกวนช่วยหน่อยนะครับ
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Tue Jun 26, 2018 9:48 pm
ตัวอย่างการปรับ 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
Leng
Member
Posts: 225 Joined: Tue Jun 26, 2018 5:19 pm
#3
Post
by Leng » Wed Jun 27, 2018 8:41 am
ได้ละครับขอบคุณมากครับ
ขอสอบถามอีกข้อครับ
- สามารถยิงบาร์โค๊ดต่อๆ ไปได้เรื่อยๆเลยไหมครับโดยไม่ต้องกดคลิ๊กที่ combobox ทุกครั้งหลังจาก scan 1 ครั้ง
Leng
Member
Posts: 225 Joined: Tue Jun 26, 2018 5:19 pm
#4
Post
by Leng » Wed Jun 27, 2018 2:07 pm
snasui wrote: Tue Jun 26, 2018 9:48 pm
ตัวอย่างการปรับ 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 ครั้ง
logic
Gold
Posts: 1511 Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365
#5
Post
by logic » Wed Jun 27, 2018 3:18 pm
Leng
Member
Posts: 225 Joined: Tue Jun 26, 2018 5:19 pm
#6
Post
by Leng » Wed Jun 27, 2018 5:16 pm
ผมได้ลองดูแล้วครับแต่ยังไม่ค่อยเข้าใจ
คือผมอยากให้ยิงบาโค้ดใน combobox ต่อได้เรื่อยๆโดยไม่กด ปุ่ม ในการบันทึกข้อมูล รบกวนหน่อยนะครับ
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#7
Post
by snasui » Wed Jun 27, 2018 8:28 pm
ให้ Set Focus กับ ComboBox นั้นหลังจากมีการบันทึกรายการแล้ว โปรแกรมจะวาง Cursor ที่ ComboBox ให้ยิง Barcode ต่อเนื่องไปได้ครับ
Leng
Member
Posts: 225 Joined: Tue Jun 26, 2018 5:19 pm
#8
Post
by Leng » Thu Jun 28, 2018 7:08 pm
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 ต่อเนื่องได้
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#9
Post
by snasui » Thu Jun 28, 2018 7:10 pm
การถามตอบให้ถามในฟอรัม อย่าส่งไปทางข้อความส่วนตัวครับ
การ Set Focus ในกรณีนี้ให้เขียนไว้ก่อน End Sub ใน Code ตามโพสต์ #2 ครับ
หากยังไม่ได้ให้แนบไฟล์ที่ได้ปรับ Code มาแล้วจะได้ช่วยดูให้ได้ อย่าโพสต์มาเฉพาะ Code ครับ
Leng
Member
Posts: 225 Joined: Tue Jun 26, 2018 5:19 pm
#10
Post
by Leng » Thu Jun 28, 2018 7:44 pm
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 ครั้ง
Attachments
system GF.xlsm
(135.43 KiB) Downloaded 3 times
Leng
Member
Posts: 225 Joined: Tue Jun 26, 2018 5:19 pm
#11
Post
by Leng » Thu Jun 28, 2018 7:48 pm
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 ครั้ง
Attachments
system GF.xlsm
(140.07 KiB) Downloaded 2 times
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#12
Post
by snasui » Thu Jun 28, 2018 7:57 pm
ลองปรับเป็นด้านล่างครับ
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
Leng
Member
Posts: 225 Joined: Tue Jun 26, 2018 5:19 pm
#13
Post
by Leng » Thu Jun 28, 2018 8:04 pm
ผมได้ลองทำแล้วครับแต่ก็ยังไม่ได้ครับ คือ scan แล้วแต่ยัง ไม่สามารถ scan ต่อได้ครับ รบกวนอาจารย์ด้วยครับ
Attachments
system GF.xlsm
(138.35 KiB) Downloaded 21 times
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#14
Post
by snasui » Thu Jun 28, 2018 8:10 pm
ชว่ยขยายความคำว่าไม่สามารถ Scan ต่อเนื่องได้มาด้วยว่าเมื่อยิง Barcode แล้วเกิด Barcode ขึ้นหรือไม่ อย่างไร ฯลฯ ครับ
Leng
Member
Posts: 225 Joined: Tue Jun 26, 2018 5:19 pm
#15
Post
by Leng » Thu Jun 28, 2018 8:15 pm
จากที่ได้ลองปรับโค๊ดที่อาจารย์ให้มา ผลที่ได้คือ
-สามารถ scan ได้และข้อมูลขึ้นครับ ข้อมูลเก่าจาก combobox ก็หายไป แต่พอ scan รอบ 2 ไม่สามารถ scanได้ครับ ยกเว้นต้องไปคลิ๊กที่ combobox แล้ว scan ใหม่ ถึงจะมีข้อมูลขึ้นครับ
Leng
Member
Posts: 225 Joined: Tue Jun 26, 2018 5:19 pm
#16
Post
by Leng » Thu Jun 28, 2018 8:33 pm
ผมขอรบกวนอาจารย์ด้วยจริงๆครับ
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#17
Post
by snasui » Thu Jun 28, 2018 8:49 pm
Leng wrote: Thu Jun 28, 2018 8:33 pm
ผมขอรบกวนอาจารย์ด้วยจริงๆครับ
ข้อความด้านบนนี้ไม่จำเป็นต้องโพสต์ ผมไม่ปล่อยให้คำถามในฟอรัมนี้ไม่มีคำตอบครับ
ปรับ 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
Leng
Member
Posts: 225 Joined: Tue Jun 26, 2018 5:19 pm
#18
Post
by Leng » Fri Jun 29, 2018 8:23 am
ได้แล้วครับขอบคุณมากครับ
Leng
Member
Posts: 225 Joined: Tue Jun 26, 2018 5:19 pm
#19
Post
by Leng » Fri Jun 29, 2018 8:48 am
ได้แล้วครับ แต่เวลากด botton อื่นข้อมูลก็บันทึกไปด้วย เราสามารถแก้อะไรได้ไหมครับ
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#20
Post
by snasui » Fri Jun 29, 2018 8:32 pm
Leng wrote: Fri Jun 29, 2018 8:48 am
ได้แล้วครับ แต่เวลากด botton อื่นข้อมูลก็บันทึกไปด้วย เราสามารถแก้อะไรได้ไหมครับ
กดปุ่มไหนถึงทำให้ข้อมูลถูกบันทึกไปด้วยช่วยแจ้งมาด้วยครับ