:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน"

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#61

Post by suka »

แยกเอกสารเป็นตัวเลขก็ได้ค่ะ คือต้องการดูแค่ตัวนำหน้าเอกสารแล้วรู้ประเภทของงานค่ะ
เช่นงานผลิต ขึ้นต้นเป็น 1xxx เบิก = 2 ปรับปรุง = 3 ใบส่งสินค้าชั่วคราว = 4 ใบกำกับภาษี = 5 ประมาณนี้ค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#62

Post by snasui »

:D คุณ suka กำหนดมาให้เลยครับว่าแต่ละประเภทมีกี่หลัก ประกอบด้วยอักขระใดบ้าง หรือตัวเลขล้วน ๆ หากสิ่งการคือให้ Code ทำการ Run เลขที่เมื่อมีการบันทึกไปแล้วไม่ได้ดูเงื่อนไขอื่นใดอีก Code ที่จะใช้นั้นผมคิดว่าไม่น่าจะยากครับ :mrgreen:
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#63

Post by suka »

ขอมีเงื่อนไขค่ะ คือสามารถเลือกประเภทเอกสารได้และไม่ทำการบันทึกซ้ำ หากมีการกรอกข้อมูลผิดสามารถเรียกกลับเพื่อแก้ไขหรือทำการยกเลิกได้ค่ะ

เลขที่เอกสารแต่ละประเภทมีดังนี้
ผลิต 100001 ใบส่งสินค้าชั่วคราว 4001001
เบิก 200001 ใบกำกับภาษี 54001001
รับคืน 300001

อาจารย์คะขอทำความเข้าใจการทำงานของระบบโปรแกรมก่อนค่ะ
หากมีการเบิกหรือรับคืนให้กรอกข้อมูลบันทึกไปก่อน แล้วค่อยใช้สูตรมาลบจากยอดการผลิตภายหลังใช่หรือไม่คะ

ขอบพระคุณค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#64

Post by snasui »

:D กรณีเป็นตัวเลขทั้งหมดก็สามารถ Run ตัวเลขได้ง่ายครับ หากว่ามีการเปลี่ยนประเภทของของเอกสาร ก็ให้ทางผู้ใช้งานเปลี่ยนเองครับ ไม่เช่นนั้นก็ต้องระบุว่าให้โปรแกรมดูจากค่าในเซลล์ใด เพื่อนำเลขที่เอกสารถัดไปมาไว้ล่วงหน้า และเมื่อกดปุ่มบันทึกแล้ว ลำดับถัดไปก็จะแสดงมารอไว้ให้เลย

สำหรับการแก้ไข ปรับปรุง เปลี่ยนแปลง โดยหลักการแล้วเราจะไม่แก้ที่ใบเดิมโดยตรงแต่ให้เพิ่มรายการเข้าไปใหม่เพื่อปรับปรุงใบเดิม

ยกตัวอย่างเช่น ยกเลิกรายการที่บันทึกผิด จะมีการบันรายการเข้าไปใหม่ด้วยค่าที่ตรงกันข้ามเพื่อล้างให้เป็น 0

สำหรับไฟล์นี้คงต้องออกแบบฟอร์มสำหรับการปรับปรุงรายการมาเพิ่ม เนื่องฟอร์มปัจจุบันใช้สูตรในการดึงข้อมูลมาแสดง

สำหรับ Code เพื่อ Run Po.No ดูตัวอย่างตามด้านล่าง เครื่องหมาย ... คือ Code เดิมครับ

Code: Select all

Option Explicit

Sub PasteData()
    ...
    Sheets("Enterthedata").Range("B204:B219,D204:D219, E204:F219").ClearContents
    With Worksheets("Enterthedata")
        .Range("L2") = .Range("L2") + 1
    End With
    Application.ScreenUpdating = True
End Sub
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#65

Post by suka »

อาจารย์คะ ให้นำ Code นี้ต่อท้าย Code เดิมใช่มั้ยคะ


Sheets("Enterthedata").Range("B204:B219,D204:D219, E204:F219").ClearContents
With Worksheets("Enterthedata")
.Range("L2") = .Range("L2") + 1
End With
Application.ScreenUpdating = True
End Sub
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#66

Post by snasui »

:D เครื่องหมาย ... นั้นผมละไว้ในฐานที่เข้าใจเนื่องจากเป็น Code ทั้งหลายก่อนแทรกครับ

มี Code เดิมอยู่ในคำตอบของผมด้วย ผมแสดงให้เห็นว่าแทรกเข้าไประหว่างบรรทัดไหนถึงบรรทัดไหน ซึ่งอยู่ส่วนท้ายของ Code ทั้งหมด สังเกต End Sub จะต้องอยู่บรรทัดท้ายสุดของแต่ละ Procedure

ที่ถามมา ถ้าคำว่าต่อท้ายหมายถึงต่อท้ายคำว่า End Sub คำตอบคือ ไม่ใช่ครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#67

Post by suka »

อาจารย์คะ ขอรบกวนช่วยดูให้อีกทีค่ะ เมื่อกดปุ่มบันทึกแล้ว ลำดับเลขที่เอกสารถัดไปแสดงรอ เพิ่มทีละ 2 หมายเลขค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#68

Post by snasui »

:D เนื่องจาก Code ด้านล่างซ้ำักัน 2 ชุด เอาออกไป 1 ชุดครับ

Code: Select all

    Sheets("Enterthedata").Range("B204:B219,D204:D219, E204:F219").ClearContents
    With Worksheets("Enterthedata")
        .Range("L2") = .Range("L2") + 1
    End With
    Application.ScreenUpdating = True
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#69

Post by suka »

อาจารย์คะ
แจ้งผลการใช้งานค่ะ การใช้ฟอร์มโดยใช้สูตรดึงข้อมูลช่วยลดปัญหากรอกผิดได้มาก และใช้ Code เพื่อ Run Po.No
ได้เพิ่มความสะดวก รวดเร็ว ในการบันทึกงาน
สรุปผลจากการเรียนรู้การใช้งาน Excel จากฟอรั่มนี้ช่วยให้รู้ประโยชน์ของฟอร์มกรอกข้อมูล และ เพิ่งรู้จักเจ้า Database ค่ะ

ไว้ได้แบบฟอร์มสำหรับการปรับปรุงรายการค่อยส่งมาให้อาจารย์ช่วยดูให้นะคะ
ตอนนี้ที่ชีท PriceList ใช้ถึงคอลัมน์สุดท้ายแล้ว IV ยังไม่พอค่ะจะต่อยังไงคะ

ขอบคุณค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#70

Post by snasui »

:D ก็ต้องแปลงให้มาอยู่ในรูปแบบ Database ครับ ลองส่งตัวอย่างมาอีกทีครับ :mrgreen:
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#71

Post by suka »

อาจารย์คะ

1.ที่ชีท Enterthedata ได้ทำพักค่าเอกสารสุดท้ายในเซลล์ N209:N211 หากจะระบุว่าให้โปรแกรมดูจากค่าในเซลล์ N209:N211 เพื่อ Run Po.No ที่ L2 ได้มั้ยคะ
2.ที่ชีท PriceList ใช้ถึงคอลัมน์สุดท้ายแล้ว IV จะทำการเพิ่มคอลัมน์ได้อย่างไรคะ

ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#72

Post by snasui »

:D ข้อมูลใน N209 ถึง 211 มาได้อย่างไรครับ มีหลักการได้ให้โปรแกรมเลือกใช้ค่าที่ให้ไว้ไหมครับ และมีแค่ 3 ค่านี้เท่านั้นหรือเปล่าครับ

หลักการที่ถูกต้องคือ จะต้องระบุให้โปรแกรมรู้ว่า ตอนนี้เรากำลังทำงานกับรายการประเภทใด รายการประเภทนั้นในฐานข้อมูลมีรายการล่าสุดอยู่ที่เลขที่ใด แล้วค่อยเอาเลขที่นั้นมาบวกด้วย 1

สำหรับการออกแบบตารางเป็นฐานข้อมูลนั้นผมทำเป็นตัวอย่างให้แล้วในชีท PriceList จะเห็นได้ว่าสามารถเก็บข้อมูลได้จำนวนมาก เพราะเราเก็บลงไปด้านล่าง ไม่ใช่เก็บไปด้านขวาครับ :mrgreen:
You do not have the required permissions to view the files attached to this post.
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#73

Post by suka »

ขอบพระคุณมากค่ะ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#74

Post by suka »

ตัวอย่างการเก็บข้อมูลที่ควรจะเป็นสังเกตตามด้านล่างครับ
ไฟล์ Inventory.7(2).xls


จากการดูตัวอย่างของอาจารย์มีคำถามขอคำแนะนำเพิ่มค่ะ หากที่ชีท Products แทรกเซลล์เพิ่ม Type เข้าไปเพื่อกำหนดระดับราคา ราคาปกติ , ราคาพิเศษ , ระดับ 1 ,ระดับ 2 ,ระดับ 3 ,ฯลฯ และที่ชีท PriceList เซลล์ Type เป็นตัวกำหนดให้เลือกใช้ราคาแบบระดับไหน ของแต่ละร้านค้าได้ไหมค่ะ

ขอบคุณค่ะ
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#75

Post by snasui »

:D สามารถใช้สูตรดึงมาได้ครับ ส่งไฟล์ตัวอย่างที่ปรับปรุงแล้วมาด้วยครับ จะได้เห็นข้อมูลและเพื่อความสะดวกในการตอบครับ :mrgreen:
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#76

Post by suka »

อาจารย์คะ ส่งไฟล์ตัวอย่างค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#77

Post by snasui »

:D ในชีท Enterthedata ต้องระบุ Type ด้วยครับว่า Unit Price และ Discount ที่ดึงมานั่นเป็น ปกติ, พิเศษ, พิเศษ1 ฯลฯ โดยดูจากเซลล์ใด เพื่อจะได้ดึงค่ามาถูกต้อง :mrgreen:
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#78

Post by suka »

อาจารย์คะ ส่งไฟล์ตัวอย่างอีกรอบค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30919
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#79

Post by snasui »

:D ลองตามไฟล์แนบครับ

ที่ J204 คีย์

=IF(ISBLANK($D204)," ",SUMPRODUCT(--($B204=Products!$A$2:$A$33),--($C204=Products!$B$2:$B$33),--($D204=Products!$C$2:$C$33),--($G$1=Products!$D$2:$D$33),INDEX(Products!$E$2:$F$33,0,MATCH(J$203,Products!$E$1:$F$1,0))))

Enter > Copy ไปยัง K219
You do not have the required permissions to view the files attached to this post.
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

#80

Post by suka »

อาจารย์คะ ขอรับไฟล์ตัวอย่างค่ะ

ขอบพระคุณมากค่ะ
Post Reply