: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 แบบสัมพันธ์กัน

#121

Post by suka »

อาจารย์คะ มารบกวนอีกรอบค่ะ
1.ที่ชีท Enterthedata ที่คอลัมน์ L ใส่ตัวเลขใดลงไปที่คอลัมน์ M ก็จะหักส่วนลด เป็น %
ที่คอลัมน์ M ต้องการสูตรหากใส่ตัวเลขตามด้วยเปอร์เซ็นต์ (5+%) ผลลัพธ์ได้ตาม M204
หากใส่ตัวเลขโดยไม่ใส่ % ( 200 ) ตามก็ให้หักเป็นจำนวนเงินบาทผลลัพธ์ที่ได้ตาม M205

2.ที่ชีท Enterthedata คอลัมน์ E204:E219 หากใส่ตัวเลขแล้วกดปุ่มลูกศร => ให้เลื่อนไปที่ คอลัมน์ F ไม่เลื่อนลงน่ะค่ะ

ขอบคุณค่ะ
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 แบบสัมพันธ์กัน

#122

Post by snasui »

:D ลองตามนี้ครับ

ที่ M204 ปรับสูตรเป็น

=IF(H204<>"",IF(L204<1,H204*J204*(1-K204)*(1-L204),H204*J204*(1-K204)-L204),"")

Enter > Copy ลงด้านล่าง

ปรับ Code ที่ชีท Enterthedata ใหม่ตามด้านล่างเพื่อให้ทำงานเฉพาะพื้นที่ที่กำหนดเท่านั้นครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
On Error Resume Next
If Not Intersect(Target, Range("B204:B219")) Is Nothing Then
    Worksheets("Other").Range("G1") = Target
    Target.Select
    If Len(Target) < 3 Then
        Application.SendKeys "%{DOWN}"
    End If
End If
Application.EnableEvents = True
End Sub
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

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

#123

Post by suka »

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

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

#124

Post by suka »

อาจารย์คะขอรบกวนค่ะ
หากต้องการกำหนดให้ที่ชีท Enterthedata คอลัมน์ D2 เมื่อกดปุ่ม Enter แล้วให้เคอร์เซอร์วิ่งไปยังตำแหน่ง B204
และเมื่อกด Enter B204 ให้เคอร์เซอร์ไปอยู่ที่ คอลัมน์ D204 และที่ D204 เลื่อนลงแสดงรายการเพื่อให้เลือกรายการสินค้าได้
และที่คอลัมน์ F204 หากกด Enter แล้วให้เคอร์เซอร์วิ่งไปที่คอลัมน์ B205 ตามนี้ มิทราบว่าจะกำหนดได้ไหมคะ

ขอบคุณค่ะ
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 แบบสัมพันธ์กัน

#125

Post by snasui »

:D การทำให้ Validation เลื่อนลงอัตโนมัติต้องใช้ VBA การกำหนดว่าเมื่อ Enter แล้วให้ลูกศรเลื่อนไปไหนใช้ VBA หรือไม่ก็ได้ ลองปรับ VBA มาดูก่อน ติดตรงไหนค่อยมาถามกันต่อครับ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

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

#126

Post by suka »

อาจารย์คะ ขอรบกวนถามค่ะ

ที่ชีท Enterthedata เมื่อ Cursor มาอยู่ที่ D204 แล้วต้องการให้ที่ D204 เลื่อนรายการลงเพื่อให้เลือกสินค้า
จะกำหนดหรือตั้งค่าอย่างไรคะ

ขอบคุณค่ะ
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 แบบสัมพันธ์กัน

#127

Post by snasui »

:D ลองปรับ Code ที่ Worksheet_SelectionChage เป็นตามด้านล่างครับ

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$M$1" Then
    With ActiveSheet.Calendar1
            .Visible = True
            .Top = ActiveCell.Offset(0, 0).Top
            .Left = ActiveCell.Offset(0, 1).Left
    End With
Else
    ActiveSheet.Calendar1.Visible = False
End If
If Not Intersect(Target, Range("D204:D219")) Is Nothing Then
        Application.SendKeys "%{DOWN}"
End If
Application.EnableEvents = True
End Sub
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

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

#128

Post by suka »

อาจารย์คะ

ปรับแล้วค่ะได้ตามที่ต้องการค่ะ

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

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

#129

Post by suka »

ขอความช่วยเหลือค่ะ เรื่อง Code ด้านล่างค่ะ เมื่อคีย์อักษรไม่เกิน 3 ตัวแรกที่ชีทฟอร์มบันทึก เซลล์ D3 แล้ว Enter แสดงรายการให้เลือกไม่ได้ค่ะ
และอีกจุดที่ชีทฟอร์มบันทึก เซลล์ B5:B19 Enter แสดงรายการให้เลือกจุดนี้ใช้ได้ค่ะ โดยใช้เซลล์ J1 ชีทข้อมูลร้านค้า เซลล์ข้อมูลเดียวกันค่ะ ไม่ทราบต้องแก้ Code อย่างไรคะ
ขอบคุณค่ะ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
On Error Resume Next
If Not Intersect(Target, Range("B5:B19")) Is Nothing Then
    Worksheets("ข้อมูลร้านค้า").Range("J1") = Target
    Target.Select
    If Len(Target) < 3 Then
        Application.SendKeys "%{DOWN}"
    End If
End If
If Not Intersect(Target, Range("D3")) Is Nothing Then
    Worksheets("ข้อมูลร้านค้า").Range("J1") = Target
    Target.Select
    If Len(Target) < 3 Then
        Application.SendKeys "%{DOWN}"
    End If
End If

Application.EnableEvents = True
End Sub
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

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

#130

Post by suka »

ขออภัยค่ะ ลืมแนบไฟล์ตัวอย่างค่ะ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

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

#131

Post by bank9597 »

:D ลองดูตามไฟล์แนบครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
suka
Silver
Silver
Posts: 918
Joined: Tue Nov 16, 2010 7:38 pm
Excel Ver: 2007,2021

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

#132

Post by suka »

อ่อค่ะ จุดที่ไม่ได้ลืมทำ Validation ขอบคุณค่ะคุณbank9597
Post Reply