: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

Macro : ใส่ค่าตามรายละเอียด แล้วโชว์ค่าเลยก่อนจะ save สามารถทำได้หรือไม่ครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Macro : ใส่ค่าตามรายละเอียด แล้วโชว์ค่าเลยก่อนจะ save สามารถทำได้หรือไม่ครับ

#1

Post by wisitsakbenz »

เรียน สอบถามอาจารย์ผมเขียน macro คำนวณค่าอาหารต่าง ๆ แต่จะต้องกด Save ก่อนค่าถึงจะโชว์ อยากให้ใส่ค่าตามรายละเอียดด้านล่าง แล้วโชว์เลยก่อนจะ save สามารถทำได้หรือไม่ครับ

วิธีคือ
1. กรอกค่า ICU หรือ Ward (D4 หรือ D5 อย่างใดอย่างหนึ่ง) = 70,000 หรืออาจเป็นค่าอื่น
2. ใส่ค่า ICU หรือ Ward ว่ากี่วัน (H4 หรือ H5 อย่างใดอย่างหนึ่ง) = 1 หรืออาจจะเป็น 2, 3, ...

อยากให้คำนวณผลออกมาเลย

ถ้าเป็น ICU จะคำนวณผลลัพทธ์จะเท่ากับ
Room ค่าห้อง = 5200
Food ค่าอาหาร = 1100
Inpatient Hospital Service ค่าบริการผู้ป่วยใน = 1400
Nursing ค่าบริการพยาบาล = 2400
Medication & Supplies ยาและเวชภัณฑ์ = 59900

ถ้าเป็น Ward จะคำนวณผลลัพทธ์จะเท่ากับ
Room ค่าห้อง = 7700
Food ค่าอาหาร = 1100
Inpatient Hospital Service ค่าบริการผู้ป่วยใน = 1800
Nursing ค่าบริการพยาบาล = 4900
Medication & Supplies ยาและเวชภัณฑ์ = 54500

ขอบคุณมากครับอาจารย์
Attachments
Book202.xlsm
(27.8 KiB) Downloaded 4 times
User avatar
parakorn
Gold
Gold
Posts: 1223
Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:

Re: Macro : ใส่ค่าตามรายละเอียด แล้วโชว์ค่าเลยก่อนจะ save สามารถทำได้หรือไม่ครับ

#2

Post by parakorn »

ยังไม่ค่อยเข้าใจครับ
ผลลัพท์ที่ต้องการคือช่องไหนครับ
แล้วถ้ามีการกรอกทั้งสองช่องล่ะครับ ฝั่งใดฝั่งหนึ่ง หรือ ทั้งสองฝั่งล่ะครับ
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: Macro : ใส่ค่าตามรายละเอียด แล้วโชว์ค่าเลยก่อนจะ save สามารถทำได้หรือไม่ครับ

#3

Post by wisitsakbenz »

ผลลัพธ์คือ ช่อง D7 - D11 ครับอาจารย์ parakorn

input คือ D4 หรือ D5 (เลือกกรอกช่องใดช่องหนึ่ง) และ H4 หรือ H5 (เลือกกรอกช่องใดช่องหนึ่ง)
ถ้าเลือก D4 จะต้องกรอก H4
ถ้าเลือก D5 จะต้องกรอก H5 ครับ
User avatar
parakorn
Gold
Gold
Posts: 1223
Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:

Re: Macro : ใส่ค่าตามรายละเอียด แล้วโชว์ค่าเลยก่อนจะ save สามารถทำได้หรือไม่ครับ

#4

Post by parakorn »

ประมาณนี้หรือเปล่าครับ
D7 =IF(AND(ICU="",Ward=""),"",IF(ICU<>"",H15*tbCalICU,H22*tbCalWard)) Enter+Copy ลงไปถึง D10
D11 =IF(AND(ICU="",Ward=""),"",IF(ICU<>"",ICU-SUM(D7:D10),Ward-SUM(E22:E25))) Enter
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: Macro : ใส่ค่าตามรายละเอียด แล้วโชว์ค่าเลยก่อนจะ save สามารถทำได้หรือไม่ครับ

#5

Post by wisitsakbenz »

สามารถเขียนเป็น Code Macro ได้หรือไม่ครับ

เพราะถ้าทำการเคลียร์ค่า หรือ clear ข้อมูล สูตรจะหายไปด้วยครับ

ขอบคุณครับ
User avatar
parakorn
Gold
Gold
Posts: 1223
Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:

Re: Macro : ใส่ค่าตามรายละเอียด แล้วโชว์ค่าเลยก่อนจะ save สามารถทำได้หรือไม่ครับ

#6

Post by parakorn »

โค้ดสำหรับใส่สูตรใหม่ ประมาณนี้ครับ

Code: Select all

'other code
    
    Range("D7:D10").Select
    Selection.FormulaR1C1 = _
        "=IF(AND(ICU="""",Ward=""""),"""",IF(ICU<>"""",R[8]C[4]*tbCalICU,R[15]C[4]*tbCalWard))"
    Range("D11").Select
    Selection.FormulaR1C1 = _
        "=IF(AND(ICU="""",Ward=""""),"""",IF(ICU<>"""",ICU-SUM(R[-4]C:R[-1]C),Ward-SUM(R[11]C[1]:R[14]C[1])))"
        
        'other code
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: Macro : ใส่ค่าตามรายละเอียด แล้วโชว์ค่าเลยก่อนจะ save สามารถทำได้หรือไม่ครับ

#7

Post by wisitsakbenz »

อาจารย์ parakorn ครับ ขอสอบถามเพิ่มเติมครับ

ตารางนี้มีการกำหนดค่าตรงไหนหรือไม่ครับ พอเอาไปใช้งานจริง มันไม่ดึงตัวเลขมาให้ครับ
อาจารย์ช่วยอธิบาย Code ส่วนนี้หน่อยนะครับ

=IF(AND(ICU="""",Ward=""""),"""",IF(ICU<>"""",R[8]C[4]*tbCalICU,R[15]C[4]*tbCalWard))"
=IF(AND(ICU="""",Ward=""""),"""",IF(ICU<>"""",ICU-SUM(R[-4]C:R[-1]C),Ward-SUM(R[53]C[1]:R[57]C[1])))"

ขอบคุณครับ
Last edited by wisitsakbenz on Thu Dec 05, 2019 9:50 am, edited 2 times in total.
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Macro : ใส่ค่าตามรายละเอียด แล้วโชว์ค่าเลยก่อนจะ save สามารถทำได้หรือไม่ครับ

#8

Post by snasui »

:D ตัวอย่างการออกแบบให้สะดวกต่อการใช้งานตามไฟล์แนบครับ
Attachments
Book202_Ans.xlsm
(20.49 KiB) Downloaded 5 times
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: Macro : ใส่ค่าตามรายละเอียด แล้วโชว์ค่าเลยก่อนจะ save สามารถทำได้หรือไม่ครับ

#9

Post by wisitsakbenz »

ขอบคุณอาจารย์ snasui ครับ ทางผมอยากได้แบบเดิมมากกว่าครับ (ทางผู้ใช้งานต้องการครับ)
แบบอาจารย์ snasui ถ้าทำการเคลียร์ค่า หรือ clear ข้อมูล สูตรจะหายไปด้วยครับ

อาจารย์แนะนำได้หรือไม่ครับ ว่า Code นี้หมายถึงอะไร
=IF(AND(ICU="""",Ward=""""),"""",IF(ICU<>"""",R[8]C[4]*tbCalICU,R[15]C[4]*tbCalWard))"
=IF(AND(ICU="""",Ward=""""),"""",IF(ICU<>"""",ICU-SUM(R[-4]C:R[-1]C),Ward-SUM(R[53]C[1]:R[57]C[1])))"

ขอบคุณครับ
Attachments
Book202.xlsm
(30.16 KiB) Downloaded 4 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Macro : ใส่ค่าตามรายละเอียด แล้วโชว์ค่าเลยก่อนจะ save สามารถทำได้หรือไม่ครับ

#10

Post by snasui »

wisitsakbenz wrote: Thu Dec 05, 2019 9:38 am แบบอาจารย์ snasui ถ้าทำการเคลียร์ค่า หรือ clear ข้อมูล สูตรจะหายไปด้วยครับ
:D เราจะไม่ Clear ค่าในเซลล์ที่เขียนสูตรครับ
wisitsakbenz wrote: Thu Dec 05, 2019 9:38 am ทางผมอยากได้แบบเดิมมากกว่าครับ (ทางผู้ใช้งานต้องการครับ)
:lol: ความคิดเห็นผมคือ ถ้าเสนอวิธีอื่นที่ไม่สับสน กรอกง่าย เข้าใจง่าย และยอมรับได้ก็จะดีกับทั้งสองฝ่าย ถ้าหากเราแนะนำไปแล้วแต่ผู้ใช้งานยังยืนยันว่าจะใช้แบบเดิมก็ไม่ว่ากัน

ของเดิมอาจจะพลั้งเผลอหรือจะตั้งใจก็ตาม ถ้าหากกรอกหมดทุกช่องโปรแกรมจะพิจารณาอย่างไรครับ :?:
wisitsakbenz wrote: Thu Dec 05, 2019 9:38 am อาจารย์แนะนำได้หรือไม่ครับ ว่า Code นี้หมายถึงอะไร
=IF(AND(ICU="""",Ward=""""),"""",IF(ICU<>"""",R[8]C[4]*tbCalICU,R[15]C[4]*tbCalWard))"
=IF(AND(ICU="""",Ward=""""),"""",IF(ICU<>"""",ICU-SUM(R[-4]C:R[-1]C),Ward-SUM(R[53]C[1]:R[57]C[1])))"
สูตรนี้เป็นการอ้างแบบ R1C1 แทน A1 คือเป็นการอ้างแบบค่าบรรทัดและคอลัมน์แทนการอ้างแบบ Reference ที่เป็นการอ้างอักษรของคอลัมน์ตามด้วยค่าบรรทัด

ยกตัวอย่างเช่น

R[15]C[4] หมายถึง เซลล์ในบรรทัดที่ 15 และ คอลัมน์ที่ 14 นับจากเซลล์ปัจจุบัน
R1C1 หมายถึง เซลล์ในบรรทัดที่ 1 คอลัมน์ที่ 1
R[-1]C[8] หมายถึง เซลล์ในบรรทัดก่อนเซลล์ปัจจุบันและคอลัมน์ที่ 8 นับจากเซลล์ปัจจุบัน
เป็นต้น
wisitsakbenz
Silver
Silver
Posts: 562
Joined: Mon Sep 09, 2019 3:13 pm
Excel Ver: 2013

Re: Macro : ใส่ค่าตามรายละเอียด แล้วโชว์ค่าเลยก่อนจะ save สามารถทำได้หรือไม่ครับ

#11

Post by wisitsakbenz »

ได้แล้วครับอาจารย์ snasui ขอบคุณอาจารย์ทั้ง 2 มากเลยครับ

ได้ความรู้มากเลยครับ
Post Reply