Page 7 of 7

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

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

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

ขอบคุณค่ะ

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

Posted: Fri May 27, 2011 5:22 pm
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

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

Posted: Fri May 27, 2011 6:16 pm
by suka
อาจารย์คะ ลองปรับสูตรตามที่แนะนำและทดสอบแล้วใช้งานได้แล้วค่ะ
ขอบพระคุณมากๆๆค่ะ

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

Posted: Thu Jun 02, 2011 3:35 pm
by suka
อาจารย์คะขอรบกวนค่ะ
หากต้องการกำหนดให้ที่ชีท Enterthedata คอลัมน์ D2 เมื่อกดปุ่ม Enter แล้วให้เคอร์เซอร์วิ่งไปยังตำแหน่ง B204
และเมื่อกด Enter B204 ให้เคอร์เซอร์ไปอยู่ที่ คอลัมน์ D204 และที่ D204 เลื่อนลงแสดงรายการเพื่อให้เลือกรายการสินค้าได้
และที่คอลัมน์ F204 หากกด Enter แล้วให้เคอร์เซอร์วิ่งไปที่คอลัมน์ B205 ตามนี้ มิทราบว่าจะกำหนดได้ไหมคะ

ขอบคุณค่ะ

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

Posted: Thu Jun 02, 2011 3:53 pm
by snasui
:D การทำให้ Validation เลื่อนลงอัตโนมัติต้องใช้ VBA การกำหนดว่าเมื่อ Enter แล้วให้ลูกศรเลื่อนไปไหนใช้ VBA หรือไม่ก็ได้ ลองปรับ VBA มาดูก่อน ติดตรงไหนค่อยมาถามกันต่อครับ

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

Posted: Wed Jul 27, 2011 4:28 pm
by suka
อาจารย์คะ ขอรบกวนถามค่ะ

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

ขอบคุณค่ะ

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

Posted: Wed Jul 27, 2011 4:45 pm
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

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

Posted: Wed Jul 27, 2011 5:47 pm
by suka
อาจารย์คะ

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

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

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

Posted: Sat Sep 22, 2012 1:40 pm
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

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

Posted: Sat Sep 22, 2012 1:42 pm
by suka
ขออภัยค่ะ ลืมแนบไฟล์ตัวอย่างค่ะ

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

Posted: Sat Sep 22, 2012 2:13 pm
by bank9597
:D ลองดูตามไฟล์แนบครับ

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

Posted: Sat Sep 22, 2012 2:29 pm
by suka
อ่อค่ะ จุดที่ไม่ได้ลืมทำ Validation ขอบคุณค่ะคุณbank9597