Page 1 of 2
สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Sun Nov 08, 2015 7:38 am
by parakorn
สวัสดีอาจารย์และพี่ๆในบอร์ดครับ
จากไฟล์ที่แนบ ที่ชีท สต็อค และ เบิก จะมีการเพิ่มรายการตลอดเวลา
ดังนั้นที่ชีท คงเหลือ ผมจึงต้องการให้แสดงข้อมูล ที่ชีท สต็อค และ เบิก
หักลบกันครับ โดยแสดงรายการที่ คงเหลือ 0 ด้วยครับ
ขอความกรุณาด้วยครับ

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Sun Nov 08, 2015 8:02 am
by snasui

ที่ชีตคงเหลือ เซลล์ D5 คีย์สูตรตามด้านล่างครับ
=สต็อค!D5-SUMIFS(เบิก!$D$5:$D$6,เบิก!$B$5:$B$6,B5,เบิก!$E$5:$E$6,E5)
Enter > Copy ลงด้านล่าง โดยถือว่าทุกรหัสในชีตคงเหลือมีบรรทัดตรงกับชีตสต็อค
Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Mon Nov 09, 2015 1:07 pm
by parakorn
ขอบคุณครับ รบกวนขอสอบถามต่อนะครับ
จากไฟล์ที่แนบ ที่ Sheet "L" ผม add macro ไว้ที่ F1
โดยโค้ดอยู่ที่ Module 2 ผมต้องการให้โค้ดสามารถยืดยุ่น
สามารถปรับใช้ กับ F2 , F3 ,etc โดยไม่ต้องแก้ไขโค้ด
ต้องปรับแต่งอย่างไรครับ

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Mon Nov 09, 2015 7:49 pm
by snasui

ตัวอย่างการปรับ Code ตามด้านล่างครับ
Code: Select all
Sub CreL()
'
' CreL Macro
'
'
i = 3
Sheets("Cre Recive").Select
ActiveCell.Select
For Each r In Sheets("L").Range("m3:m1000").SpecialCells(xlCellTypeConstants)
ActiveCell.FormulaR1C1 = "=L!R" & i & "C13"
ActiveCell.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
i = i + 1
Next r
End Sub
Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Mon Nov 09, 2015 10:39 pm
by parakorn
โค้ดมันวิ่งหา F4 หมดเลยครับอาจารย์
Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Tue Nov 10, 2015 5:57 pm
by snasui

ช่วยอธิบายมาใหม่อีกครั้งครับว่าลำดับการทำงานเป็นเช่นไร หาก Code ทำงานถูกต้องจะต้องได้คำตอบเป็นค่าใดบ้าง จะได้เข้าถึงปัญหาโดยไวครับ
Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Tue Nov 10, 2015 6:05 pm
by parakorn
ต้องการโค้ดที่คีย์ข้อมูล ตามกล่องต่างๆใน Sheet"L" ครับ
เช่น add macro ที่กล่อง F1 เมื่อคลิ๊กที่กล่อง F1 Cell ที่ Active จะทำการคีย์ข้อความ "F1"

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Tue Nov 10, 2015 7:01 pm
by snasui

ลองจับภาพแสดงลำดับการทำงานมาด้วยครับ
Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Tue Nov 10, 2015 9:02 pm
by parakorn
จากภาพ ต้องการ Code สำหรับคลิ๊ก เพื่อคีย์ที่อยู่ตาม Caption ของกล่องแต่ล่ะกล่องครับ
เช่น คลิ๊กที่ กล่อง "F1"(ที่ลูกศรชี้ รูปที่1) ซึ่ง "F1" ที่แสดงผลไม่ใช่ Textbox ของแต่ล่ะกล่อง
แต่อ้างอิงมาจาก Column M(เพื่อง่ายต่อการเปลี่ยนแปลงเลขที่บ้าน)
Code ก็จะคีย์ "F1" ที่ Cell ที่ Active ไว้ ที่ Sheet "Cre Recive" (รูปที่2)
และจะเป็นไปได้ไหมครับ ถ้าจะเขียนCode สำหรับ ปุ่มดอกจันทร์ ใน Sheet "Cre Recive" (รูปที่ 3)
ให้บังคับ Code ด้านบน ทำการคีย์ข้อมูล ด้านหน้าปุ่มเหล่านี้(Sheet "Cre Recive" Cell J9:J18)
หรือผมวาง หลักการใช้งานมันผิดครับ
Macro.png
Macro2.png
Macro3.png
Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Tue Nov 10, 2015 9:53 pm
by snasui
parakorn wrote:เช่น คลิ๊กที่ กล่อง "F1"(ที่ลูกศรชี้ รูปที่1) ซึ่ง "F1" ที่แสดงผลไม่ใช่ Textbox ของแต่ล่ะกล่อง
แต่อ้างอิงมาจาก Column M(เพื่อง่ายต่อการเปลี่ยนแปลงเลขที่บ้าน)
Code ก็จะคีย์ "F1" ที่ Cell ที่ Active ไว้ ที่ Sheet "Cre Recive" (รูปที่2)

ตัวอย่าง Code ครับ
Code: Select all
Sub CreL()
On Error Resume Next
Dim obj As Object
Set obj = Sheets("L").Shapes(Application.Caller)
Sheets("Cre Recive").Select
ActiveCell.Select
Selection.Value = obj.DrawingObject.Caption
End Sub
ทำการ Assign Code นี้ให้กับทุกปุ่มในชีต L
ส่วนกรณีปุ่มดาวยังไม่เคลียร์ ควรให้เคลียร์ไปทีละประเด็นแล้วค่อยถามคำถามถัดไปครับ
Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Tue Nov 10, 2015 10:28 pm
by parakorn
S1 ถึง S4 และ O1 ถึง O3 รวมถึง F4
โค้ดไม่ทำงานครับผม
ตามไฟล์แนบครับ

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Wed Nov 11, 2015 7:05 pm
by snasui

ผมลองสร้างรูปวาดแบบอื่นขึ้นมาใหม่แทนแบบเดิม เช่นรูปลูกศร แล้วค่อย Assign Macro พบว่าสามารถ Run Code ได้ปกติครับ
ส่วนสาเหตุที่รูปวาดเดิมมีปัญหานั้นยังไม่มีเวลาไปติดตามตรวจสอบครับ
Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Sat Nov 14, 2015 3:59 pm
by parakorn
แก้ไขเรียบร้อยครับ บางรูปแบบมันไม่สามารถรันโค้ดได้ครับ
จากไฟล์ที่แนบ ในส่วนปุ่มดอกจันทร์ที่ชีท "Cre Recive" ต้องการโค้ดที่
selection ไปด้านหน้าของปุ่มนั้นๆ (เช่นปุ่มแรก selection J9) แล้วจึง
Goto Sheet"L" เพื่อเลือกเลขที่บ้านครับ

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Sun Nov 15, 2015 10:51 pm
by snasui

Code ที่เขียนไว้แล้วชื่ออะไร ติดขัดที่บรรทัดใดครับ
Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Mon Nov 16, 2015 5:03 pm
by parakorn
Module2 ครับ
Code: Select all
Sub GotoL()
'
' GotoL Macro
'
'
ActiveCell.Offset(0, -1).Range("A1").Select
Sheets("L").Select
End Sub
ต้องการเขียนโค้ดให้ Selection Cell ที่อยู่ตรงกับ ปุ่มดอกจันทร์ ก่อนทำการ Offset(0,-1)
ครับ (เช่นปุ่มแรกตรงกับ K9 โค้ดก็จะ Select K9 แล้ว Offset(0,-1) แล้วจึง Sheets("L").Select ครับ)
Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Mon Nov 16, 2015 9:23 pm
by snasui

เนื่องจากเป็นงานลักษณะเดียวกัน คือคลิกแล้วให้แสดงผลใด ๆ ลองปรับปรุงจาก Code นี้มาดู ติดตรงไหนค่อยถามกันต่อครับ
Code: Select all
Sub CreL()
On Error Resume Next
Dim obj As Object
Set obj = Sheets("L").Shapes(Application.Caller)
Sheets("Cre Recive").Select
ActiveCell.Select
Selection.Value = obj.DrawingObject.Caption
End Sub
Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Thu Nov 19, 2015 1:38 pm
by parakorn
ลองปรับดูตามโค้ดด้านล่าง ยังไม่สามารถทำงานได้ครับ
ผมยังไม่เข้าใจ ในการเขียนภาษา VBA แบบแทนค่าด้วย ตัวย่อ
หากมีเวลาจะลองศึกษาดูครับผม
ขอรบกวนด้วยครับ
Code: Select all
Sub GotoL()
'
' GotoL Macro
' On Error Resume Next
Dim obj As Object
Set obj = Sheets("Cre Recive").Shapes(Application.Caller)
Sheets("Cre Recive").Select
' Selection.Value = obj.ActiveCell.Offset(0, -1).Range("A1").Select
Sheets("L").Select
End Sub
Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Thu Nov 19, 2015 6:51 pm
by snasui

แนบไฟล์ที่ได้แนบ Code ตามโพสต์มาด้วยจะได้ช่วยดูต่อไปจากนั้นครับ
Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Thu Nov 19, 2015 9:32 pm
by parakorn
module ที่ 2 ครับผม

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ
Posted: Fri Nov 20, 2015 5:51 am
by snasui

ตัวอย่าง Code ตามด้านล่างครับ
Code: Select all
Sub GotoL()
Dim obj As Object
Set obj = Sheets("Cre Recive").Shapes(Application.Caller)
Sheets("Cre Recive").Select
Range(obj.TopLeftCell.Address).Offset(0, -1).Select
End Sub