
ที่อธิบายพอเข้าใจแล้วครับ
ผมอยากตอบว่า ไม่สามารถทำได้ตามโจทย์ครับ แต่ถ้าอาจารย์มาอ่านเจอท่านคงไม่เห็นด้วยเป็นแน่แท้
ผมเลยขอแก้ว่า สามารถทำได้ แต่ถ้าสูตรอย่างเดียวไม่สามารถทำได้ครับทั้งหมด ต้องใช้ VBA เข้ามาช่วยถึงจะได้ครับ โดยเฉพาะในส่วนของการคลิ๊กที่ Cell แล้วให้ส่งข้อมูลไปที่อื่น
เราต้องใช้ VBA
ผมได้ทำตัวอย่างออกมาแล้วครับ แต่ยังไม่สมบูรณ์เท่าที่ควร ต้องรออาจารย์มาแก้โค๊ดให้อีกหน่อย ก็จะสามารถใช้งานได้ครับ

การดึงข้อมูล ลองตามนี้ครับ
ที่ B6 คีย์ =IF($C$6="","",INDEX(SUPPLIER!$A$4:$A$50,MATCH($K$6,SUPPLIER!$B$4:$B$50),0))
ที่ D6 คีย์ =IF(C6="","",VLOOKUP(C6,SUPPLIER!$B$4:$E$50,2,0))
ที่ G6 คีย์ =IF(C6="","",VLOOKUP(C6,SUPPLIER!$B$4:$E$50,3,0))
ที่ H6 คีย์ =IF(C6="","",VLOOKUP(C6,SUPPLIER!$B$4:$E$50,4,0))
กด ALT+F11 เรียกหน้าต่าง VBE ขึ้นมา
ดับเบิ้ลคลิีกที่ชีท PURCHASE ORDER วางโค๊ดนี้ลงไปครับ
Code: Select all
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$G$10" Then
Range("C6") = Target
Target.Select
Application.SendKeys "%{DOWN}"
End If
If Target.Address = "$G$11" Then
Range("C6") = Target
Target.Select
Application.SendKeys "%{DOWN}"
End If
If Target.Address = "$G$12" Then
Range("C6") = Target
Target.Select
Application.SendKeys "%{DOWN}"
End If
If Target.Address = "$G$13" Then
Range("C6") = Target
Target.Select
Application.SendKeys "%{DOWN}"
End If
If Target.Address = "$G$14" Then
Range("C6") = Target
Target.Select
Application.SendKeys "%{DOWN}"
End If
If Target.Address = "$G$15" Then
Range("C6") = Target
Target.Select
Application.SendKeys "%{DOWN}"
End If
If Target.Address = "$G$16" Then
Range("C6") = Target
Target.Select
Application.SendKeys "%{DOWN}"
End If
End Sub
อธิบายโดยย่อครับ โค๊ดดังกล่าวจะส่งค่าของตำแหน่งเซลล์ั้ที่คุณคลิ๊กไปวางที่ C6 ครับหลังจากนั้นสูตรก็จะทำงานเองตามปกติครับ
รออาจารย์มาเสริมให้น่ะครับ จะสมบูรณ์ว่านี้อีกครับ