snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
MnT
Member
Posts: 5 Joined: Thu May 23, 2019 7:03 pm
#1
Post
by MnT » Tue Jun 18, 2019 4:24 pm
ผมต้องการเขียน code การบันทึกมูลการสั่งซื่้อ สมมุติว่าผมเขียนตารางการสั่งซื้อที่ sheet1 แล้วมีการสั่งซื้อสินค้าหลายๆสินค้าพร้อมกัน (รายการสินค้าเรียงแนวตั้ง) แล้วเวลากดปุ่มบันทึกให้ข้อมูลไปบันทึกที่ sheet2 ข้อมูลบันทึกพร้อมๆกันทุกรายการพร้อมทั้งราคารวมทั้งหมดให้โชว์อีก column I (ผสานเซล์หรือไม่ผสานก็ได้ครับ หรือให้โชว์ที่แถวสุดท้ายครับ) ผมลองทำแล้วมันบึนทึกข้อมูลเฉพาะแถวบนแถวเดียวครับ
อาจารย์ ท่านผู้รู้ช่วยชี้แนะด้วยครับผม
ขอบคุณครับ
Attachments
Order_Test.xlsm
แนบไฟล์งานเอ็กเซล์ (32.73 KiB) Downloaded 22 times
puriwutpokin
Guru
Posts: 3801 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#2
Post
by puriwutpokin » Tue Jun 18, 2019 5:13 pm
MnT wrote: Tue Jun 18, 2019 4:24 pm
ผมต้องการเขียน code การบันทึกมูลการสั่งซื่้อ สมมุติว่าผมเขียนตารางการสั่งซื้อที่ sheet1 แล้วมีการสั่งซื้อสินค้าหลายๆสินค้าพร้อมกัน (รายการสินค้าเรียงแนวตั้ง) แล้วเวลากดปุ่มบันทึกให้ข้อมูลไปบันทึกที่ sheet2 ข้อมูลบันทึกพร้อมๆกันทุกรายการพร้อมทั้งราคารวมทั้งหมดให้โชว์อีก column I (ผสานเซล์หรือไม่ผสานก็ได้ครับ หรือให้โชว์ที่แถวสุดท้ายครับ) ผมลองทำแล้วมันบึนทึกข้อมูลเฉพาะแถวบนแถวเดียวครับ
อาจารย์ ท่านผู้รู้ช่วยชี้แนะด้วยครับผม
ขอบคุณครับ
ควรแนบโค้ดให้เป็นโค้ดไว้ที่ด้านหน้าโพสด้วยครับ คราวหน้า ตัวอย่างโค้ดครับ
Code: Select all
Sub Rectangle1_Click()
Dim Rec_Row As Integer
Dim r As Range
For Each r In Sheets("Sheet1").Range("c7:c11")
Sheets("Sheet2").Select
Range("A1").Select
Rec_Row = Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
Range("A" & Rec_Row).Value = Sheets("Sheet1").Range("C3").Value 'Name
Range("B" & Rec_Row).Value = Sheets("Sheet1").Range("E3").Value 'Surname
Range("C" & Rec_Row).Value = Sheets("Sheet1").Range("C4").Value 'Address
Range("D" & Rec_Row).Value = Sheets("Sheet1").Range("C5").Value 'Phone No.
Range("E" & Rec_Row).Value = r.Value 'Description
Range("F" & Rec_Row).Value = r.Offset(, 1).Value 'Qty
Range("G" & Rec_Row).Value = r.Offset(, 2).Value 'Price/Unit
Range("H" & Rec_Row).Value = r.Offset(, 3).Value 'total Price
Range("J" & Rec_Row).Value = Sheets("Sheet1").Range("G12").Value 'Date
'Range("J" & Rec_Row).Value = Sheets("Sheet1").Range("P12").Value 'Grand Total price
Next r
Sheets("Sheet1").Select
MsgBox ("Save Done!!!")
End Sub
MnT
Member
Posts: 5 Joined: Thu May 23, 2019 7:03 pm
#3
Post
by MnT » Tue Jun 18, 2019 5:39 pm
ขอบคุณครับผม แล้ว column ราคารวม ทำยังไงครับ กดปุ่ม save แล้วมันยังไม่รวมให้ครับผม
puriwutpokin
Guru
Posts: 3801 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#4
Post
by puriwutpokin » Tue Jun 18, 2019 7:38 pm
MnT wrote: Tue Jun 18, 2019 5:39 pm
ขอบคุณครับผม แล้ว column ราคารวม ทำยังไงครับ กดปุ่ม save แล้วมันยังไม่รวมให้ครับผม
ปรับเป็น
Code: Select all
Sub Rectangle1_Click()
Dim Rec_Row As Integer
Dim r As Range
For Each r In Sheets("Sheet1").Range("c7:c11")
Sheets("Sheet2").Select
Range("A1").Select
Rec_Row = Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
Range("A" & Rec_Row).Value = Sheets("Sheet1").Range("C3").Value 'Name
Range("B" & Rec_Row).Value = Sheets("Sheet1").Range("E3").Value 'Surname
Range("C" & Rec_Row).Value = Sheets("Sheet1").Range("C4").Value 'Address
Range("D" & Rec_Row).Value = Sheets("Sheet1").Range("C5").Value 'Phone No.
Range("E" & Rec_Row).Value = r.Value 'Description
Range("F" & Rec_Row).Value = r.Offset(, 1).Value 'Qty
Range("G" & Rec_Row).Value = r.Offset(, 2).Value 'Price/Unit
Range("H" & Rec_Row).Value = r.Offset(, 3).Value 'total Price
Range("I" & Rec_Row).Value = Sheets("Sheet1").Range("F12").Value 'total Amount Price
Range("J" & Rec_Row).Value = Sheets("Sheet1").Range("G12").Value 'Date
Range("K" & Rec_Row).Value = r.Offset(, 4).Value 'Remark
Next r
Sheets("Sheet1").Select
MsgBox ("Save Done!!!")
End Sub
MnT
Member
Posts: 5 Joined: Thu May 23, 2019 7:03 pm
#5
Post
by MnT » Wed Jun 19, 2019 12:41 pm
ขอบคุณครับ
MnT
Member
Posts: 5 Joined: Thu May 23, 2019 7:03 pm
#6
Post
by MnT » Wed Jun 19, 2019 1:49 pm
พี่ครับ code รวมราคาทั้งหมดทำไมมันโชว์ รวมราคาเดียวกันทั้งหมด ทุกรายการเลยครับ ถ้าหากต้องการให้มันรวมไว้ที่บรรทัดสุดท้ายเลยได้ไหมครับ
**สอบถามเพิ่มเติมครับผม**
สมมุติว่าลำดับในการสั่งสินค้าที่ทำไว้มีอยู่ 5 ลำดับ (5 รายการสินค้า) ถ้าเราสั่งซื้อสินค้าแค่ 3 รายการ เวลาบันทึกการสั่งซื้อไม่ให้รายการที่ 4, 5 บันทึกไปด้วย จะเขียน code ยังไงครับผม
ขอบคุณครับ
puriwutpokin
Guru
Posts: 3801 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#7
Post
by puriwutpokin » Wed Jun 19, 2019 1:59 pm
ปรับเป็น
Code: Select all
Sub Rectangle1_Click()()
Dim Rec_Row As Integer
Dim r As Range
For Each r In Sheets("Sheet1").Range("c7:c11")
If r <> "" Then
Sheets("Sheet2").Select
Range("A1").Select
Rec_Row = Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
Range("A" & Rec_Row).Value = Sheets("Sheet1").Range("C3").Value 'Name
Range("B" & Rec_Row).Value = Sheets("Sheet1").Range("E3").Value 'Surname
Range("C" & Rec_Row).Value = Sheets("Sheet1").Range("C4").Value 'Address
Range("D" & Rec_Row).Value = Sheets("Sheet1").Range("C5").Value 'Phone No.
Range("E" & Rec_Row).Value = r.Value 'Description
Range("F" & Rec_Row).Value = r.Offset(, 1).Value 'Qty
Range("G" & Rec_Row).Value = r.Offset(, 2).Value 'Price/Unit
Range("H" & Rec_Row).Value = r.Offset(, 3).Value 'total Price
Range("J" & Rec_Row).Value = Sheets("Sheet1").Range("G12").Value 'Date
Range("K" & Rec_Row).Value = r.Offset(, 4).Value 'Remark
End If
Next r
Range("I" & Rec_Row).Value = Sheets("Sheet1").Range("F12").Value 'total Amount Price
Sheets("Sheet1").Select
MsgBox ("Save Done!!!")
End Sub
MnT
Member
Posts: 5 Joined: Thu May 23, 2019 7:03 pm
#8
Post
by MnT » Wed Jun 19, 2019 4:37 pm
ขอบคุณมากกกกครับผม