Page 1 of 2

สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ

Posted: Sun Nov 08, 2015 7:38 am
by parakorn
สวัสดีอาจารย์และพี่ๆในบอร์ดครับ

จากไฟล์ที่แนบ ที่ชีท สต็อค และ เบิก จะมีการเพิ่มรายการตลอดเวลา

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

ขอความกรุณาด้วยครับ :D

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ

Posted: Sun Nov 08, 2015 8:02 am
by snasui
:D ที่ชีตคงเหลือ เซลล์ 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 โดยไม่ต้องแก้ไขโค้ด
ต้องปรับแต่งอย่างไรครับ :ugeek:

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ

Posted: Mon Nov 09, 2015 7:49 pm
by snasui
:D ตัวอย่างการปรับ 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
:D ช่วยอธิบายมาใหม่อีกครั้งครับว่าลำดับการทำงานเป็นเช่นไร หาก Code ทำงานถูกต้องจะต้องได้คำตอบเป็นค่าใดบ้าง จะได้เข้าถึงปัญหาโดยไวครับ

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ

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

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ

Posted: Tue Nov 10, 2015 7:01 pm
by snasui
:D ลองจับภาพแสดงลำดับการทำงานมาด้วยครับ

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)
หรือผมวาง หลักการใช้งานมันผิดครับ :cry:
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)
:D ตัวอย่าง 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
โค้ดไม่ทำงานครับผม
ตามไฟล์แนบครับ :D

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ

Posted: Wed Nov 11, 2015 7:05 pm
by snasui
:D ผมลองสร้างรูปวาดแบบอื่นขึ้นมาใหม่แทนแบบเดิม เช่นรูปลูกศร แล้วค่อย Assign Macro พบว่าสามารถ Run Code ได้ปกติครับ

ส่วนสาเหตุที่รูปวาดเดิมมีปัญหานั้นยังไม่มีเวลาไปติดตามตรวจสอบครับ

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ

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

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ

Posted: Sun Nov 15, 2015 10:51 pm
by snasui
:D 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
:D เนื่องจากเป็นงานลักษณะเดียวกัน คือคลิกแล้วให้แสดงผลใด ๆ ลองปรับปรุงจาก 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
:D แนบไฟล์ที่ได้แนบ Code ตามโพสต์มาด้วยจะได้ช่วยดูต่อไปจากนั้นครับ

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ

Posted: Thu Nov 19, 2015 9:32 pm
by parakorn
module ที่ 2 ครับผม :D

Re: สอบถามสูตรสำหรับสรุปข้อมูล คงเหลือ

Posted: Fri Nov 20, 2015 5:51 am
by snasui
:D ตัวอย่าง 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