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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
มัคกี้เม้า
Member
Posts: 104 Joined: Wed Jan 12, 2011 10:20 am
#21
Post
by มัคกี้เม้า » Thu May 17, 2012 10:24 am
ในกรณีที่เรา กดปุ่ม ok ไปแล้วอยากจะให้ข้อมูลนั้นถูกลบไปด้วยคะเมื่อต้องการยกเลิก ให้กดปุ่ม remove itemname
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#22
Post
by bank9597 » Thu May 17, 2012 11:24 am
ผมไม่เข้าใจครับ ที่ผมทำไป มีติดปัญหาส่วนไหนครับ
ปกติการสั่งบันทึกข้อมูล เมื่อสั่งบันทึกไปแล้ว ข้อมูลที่อยู่ในฟอร์มจะต้องถูกเคลียร์ออกไป
ส่วนปุ่ม Remove ใช้ล้างเนื้อหาทั้งหมดในฟอร์ม เวลาเราคีย์ผิดหรือต้องการคีย์ใหม่ทั้งหมดครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
มัคกี้เม้า
Member
Posts: 104 Joined: Wed Jan 12, 2011 10:20 am
#23
Post
by มัคกี้เม้า » Thu May 17, 2012 11:49 am
เราคีย์เข้าไปแล้วจะบันทึกอยู่ที่หน้า database ข้อนี้ถูกต้องคะ
ส่วนปุ่ม Remove ใช้ล้างเนื้อหาทั้งหมดในฟอร์ม เวลาเราคีย์ผิดหรือต้องการคีย์ใหม่ทั้งหมดครับ >> อันนี้ในกรณีที่เรายังไม่ได้กดปุ่ม OK
แต่ในอีกกรณีถ้าเรากด OK ไปแล้ว แต่ต้องการยกเลิกข้อมูลสินค้าที่เราสั่งไป ในหน้า database คะ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#24
Post
by bank9597 » Thu May 17, 2012 12:39 pm
การจะทำเช่นนั้นได้ จะต้องมีความรู้เรื่องโค๊ด VBA อยู่พอสมควรครับ เพราะเป็นการแก้ไขข้อมูลใน Database โดยปกติการทำเช่นนั้น จะต้องเเยกฟอร์มออกมาอีกต่างหาก เพื่อใช้เป็นฟอร์มสำหรับ อัพเดท หรือ ลบ ข้อมูลครับ
ลองเขียนโค๊ดมาดูก่อนครับ ติดส่วนไหนอย่างไรค่อยๆ ถามกันเรื่อยๆครับ
สามารถศึกษาโค๊ด พร้อมตัวอย่างไฟล์ตามลิงค์นี้ดูครับ
viewtopic.php?f=3&t=2337
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
มัคกี้เม้า
Member
Posts: 104 Joined: Wed Jan 12, 2011 10:20 am
#25
Post
by มัคกี้เม้า » Thu May 17, 2012 2:28 pm
ไม่เข้าใจคะ เรื่องสร้างฟอร์มขึ้นมาใหม่ คะ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#26
Post
by bank9597 » Thu May 17, 2012 2:37 pm
การสร้างฟอร์มขึ้นมาใหม่คือ การสร้างแบบฟอร์มเพื่อใช้ดึงข้อมูลจาก Database มาแสดงในฟอร์มที่เราสร้างขึ้น โดยสามารถยอมให้มีการแก้ไขปรับปรุงข้อมูล หรือ ลบ ข้อมูลได้
เมื่อทำเสร็จแล้วก็สั่งบันทึกปรับปรุงข้อมูลไปยังที่เดิมอีกที
หากไม่สร้างฟอร์มขึ้นใหม่ โดยจะใช้ฟอร์มเดียวกันกับฟอร์มที่ใช้บันทึกข้อมูล ก็สามารถทำได้ แต่ก็จะทำยากมากขึ้นไปอีกครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
มัคกี้เม้า
Member
Posts: 104 Joined: Wed Jan 12, 2011 10:20 am
#27
Post
by มัคกี้เม้า » Thu May 17, 2012 2:45 pm
ไม่ต้องการสร้างฟอร์มใหม่คะ ยังอยากใช้ฟอร์มเดียวกันคะ^^
อีกอย่างนะคะ
คือตอนนี้ ได้สร้างปุ่มขึ้นมาใหม่ คือ 1.Received 2.Not Receive ขึ้นมา โดยที่ต้องการให้ปุ่ม เลข1 แสดงรายการสินค้าที่ได้รับแล้วเป็นสีชมพู ในชีท Summary ส่วนปุ่มเลข2 แสดงรายการสินค้าที่ยังไม่ได้รับแล้วเป็นเขียว ในชีท Summary เช่นกันคะ
Attachments
Stock (1).xls
(77.5 KiB) Downloaded 10 times
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#28
Post
by bank9597 » Thu May 17, 2012 2:55 pm
ผมไม่เข้าใจครับ ว่าต้องการทำแบบไหน แล้วชีท Summary เกิดขึ้นมาได้อย่างไร โดยที่ผมเข้าใจแล้วเจ้าชีท Summary จะใช้สรุปข้อมูลออกมาคล้ายกับรายงาน
ซึ่งต้องดึงข้อมูลมาจาก Database อีกเช่นกัน
ส่วนกำหนดให้เป็นสีตามที่ต้องการนั้น จะต้องมีคีย์หลักที่บอกกว่ารายการไหนควรเป็นสีไหน เช่น Remark ไว้หลังรายการเป็นตัวเลข ถ้าตัว 1 คือ รับ เลข 2 คือไม่รับ เหล่านี้เป็นคีย์หลักที่จะแยกแยะว่าเราจะกำหนดสีไหนกับรายการใด
และสุดท้ายคือไฟล์ที่ส่งมายังไม่มีโค๊ดใดๆเลยครับ คุณต้องเขียนมาเองก่อน ส่วนติดปัญหาใดนั้น ผมและคนอื่นๆจะช่วยดูให้ไปเรื่อยๆครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
มัคกี้เม้า
Member
Posts: 104 Joined: Wed Jan 12, 2011 10:20 am
#29
Post
by มัคกี้เม้า » Thu May 17, 2012 3:18 pm
ขอโทษคะที่อธิบายงงนิดนึง
คือตอนนี้ ได้สร้างปุ่มขึ้นมาใหม่ คือ 1.Received 2.Not Receive ขึ้นมา โดยที่ต้องการให้ปุ่ม Received แสดงรายการสินค้าที่ได้รับแล้วเป็นสีชมพู ในชีท Summary ส่วนปุ่ม Not Receive แสดงรายการสินค้าที่ยังไม่ได้รับแล้วเป็นเขียว ในชีท Summary เช่นกันคะ
ส่วนโคดนั้นใส่ไปแล้วคะ ใน Medule4คะ
Attachments
Stock (1).xls
(77.5 KiB) Downloaded 7 times
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#30
Post
by bank9597 » Thu May 17, 2012 3:35 pm
แล้วเราจะทราบได้อย่างไรครับว่า สินค้าตัวไหนรับ หรือ ไม่รับ
ถ้าให้ดีลองอธิบายการทำงาน หรือ ระบบที่อยากให้เป็นมาโดยละเอียดดีกว่าครับ เพราะว่ายิ่งถามไป ผมก็ยิ่งงงไปกันใหญ่ครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
มัคกี้เม้า
Member
Posts: 104 Joined: Wed Jan 12, 2011 10:20 am
#31
Post
by มัคกี้เม้า » Thu May 17, 2012 3:47 pm
แล้วเราจะทราบได้อย่างไรครับว่า สินค้าตัวไหนรับ หรือ ไม่รับ
ส่วนอันนี้จะมีคนเข้ามาทำรายการเองคะ
snasui
Site Admin
Posts: 31205 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#32
Post
by snasui » Thu May 17, 2012 3:54 pm
ผมอ่านแล้วไม่เข้าใจว่าต้องการทำอะไรกับชีท Database Code ที่ให้มาเป็นการวางข้อมูลและทำการเคลียร์ค่า ไม่ได้เป็น Code สำหรับการแสดงรายการสินค้าเป็นสีอย่างที่เขียนมาตามด้านล่าง
มัคกี้เม้า wrote: ขอโทษคะที่อธิบายงงนิดนึง
คือตอนนี้ ได้สร้างปุ่มขึ้นมาใหม่ คือ 1.Received 2.Not Receive ขึ้นมา โดยที่ต้องการให้ปุ่ม Received แสดงรายการสินค้าที่ได้รับแล้วเป็นสีชมพู ในชีท Summary ส่วนปุ่ม Not Receive แสดงรายการสินค้าที่ยังไม่ได้รับแล้วเป็นเขียว ในชีท Summary เช่นกันคะ
ส่วนโคดนั้นใส่ไปแล้วคะ ใน Medule4คะ
นอกจากนี้ในชีท Database ไม่มีข้อมูลทดสอบใด ๆ เลย
มัคกี้เม้า
Member
Posts: 104 Joined: Wed Jan 12, 2011 10:20 am
#33
Post
by มัคกี้เม้า » Thu May 17, 2012 4:03 pm
ต้องการทำรายการที่ได้รับสินค้าแล้วมากดที่ปุ่ม received ส่วนที่ยังไม่ได้รับสินค้าให้ไปกดที่ปุ่ม Not receive โดยข้อมูลนั้นจะไปบันทึกที่หน้า Summary คะ
snasui
Site Admin
Posts: 31205 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#34
Post
by snasui » Thu May 17, 2012 4:07 pm
ถ้าเช่นนั้น ลองยกตัวอย่างการกรอกข้อมูลและตัวอย่าง Code สำหรับทำเช่นนั้นมาครับ เมื่อทำแล้วติดตรงไหนให้ยกมาถามครับ อธิบายให้ชัดว่าเมื่อคลิกแล้วข้อมูลจะวิ่งจากไหนไปไหน และที่ไม่ได้เกิดปัญหาอะไร จับภาพหน้าจอมาให้ด้วยก็จะยิ่งดีครับ
มัคกี้เม้า
Member
Posts: 104 Joined: Wed Jan 12, 2011 10:20 am
#35
Post
by มัคกี้เม้า » Fri May 18, 2012 12:30 pm
ขั้นตอนและวิธีการอย่างละเอียดคะ
ข้อที่ 6-8 ยังติดอยู่คะ ส่วนข้ออี่นได้หมดแล้วคะ
Attachments
Stock (1).xls
(80 KiB) Downloaded 6 times
snasui
Site Admin
Posts: 31205 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#36
Post
by snasui » Fri May 18, 2012 1:17 pm
ขั้นตอนที่ 6 Code อยู่ที่ Module ใด ชื่อ Procedure ว่าอะไร ทำแล้วติดขัดตรงไหนครับ
มัคกี้เม้า
Member
Posts: 104 Joined: Wed Jan 12, 2011 10:20 am
#37
Post
by มัคกี้เม้า » Fri May 18, 2012 1:42 pm
Code อยู่ที่ Module ใด ชื่อ Procedure ว่าอะไร ทำแล้วติดขัดตรงไหนครับ
v
v
Module ที่2 คะ ชื่อ RemoveItemnane คะ
ติดที่4. ข้อมูลกรอกเข้าไปจะไปอยู่ที่หน้า Database โดนลบทิ้งไป
snasui
Site Admin
Posts: 31205 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#38
Post
by snasui » Fri May 18, 2012 1:52 pm
ผมตรวจสอบแล้ว ยังไม่ใช่ Code สำหรับลบข้อมูลใน Database ตามค่าที่คีย์ลงไปครับ เป็นการ Clear ข้อมูลในชีท Input เท่านั้น ให้เขียน Code สำหรับ Delete ข้อมูลใน Database มาด้วย ติดตรงไหนมาดูกันต่อครับ
snasui
Site Admin
Posts: 31205 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#40
Post
by snasui » Fri May 18, 2012 3:52 pm
Code นี้ต้องการทำอะไร เข้าใจความหมายหรือไม่ครับ
Code: Select all
If Sheets("Input").Range("H8") <> "" And Sheets("Input").Range("G10") <> "" Then
Sheets("Database").Range("A" & Rows.Count) _
.End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues.ClearContentsอย่าเพียงแต่ Copy Code มาแปะโดยที่ไม่เข้าใจว่ามันคืออะไร ผมได้แนะนำไปแล้วว่ากรณีที่ไม่เข้าใจ VBA เลยก็ควรจะอ่านและทำตามหนังสือมาเป็นลำดับไป ฟอรัมนี้ไม่รับทำงาน ไม่รับทำการบ้านให้ท่านใด ให้ถามเฉพาะที่ติดปัญหาเท่านั้นครับ