: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

ช่วยแนะนำcode 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:D :thup: :cp: :flw: :rz: :sg: :tt: :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :ard: :arl: :aru: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: ช่วยแนะนำcode VBA ดึงข้อมูลมาทำรายงานหน่อยครับ

Re: ช่วยแนะนำcode VBA ดึงข้อมูลมาทำรายงานหน่อยครับ

#11

by snasui » Fri Nov 08, 2019 9:25 pm

:D ได้เขียนมาเองแล้วหรือไม่ ถ้ายังให้ลองเขียนมาเองก่อน ติดแล้วค่อยถามกันครับ

Re: ช่วยแนะนำcode VBA ดึงข้อมูลมาทำรายงานหน่อยครับ

#10

by pro602 » Fri Nov 08, 2019 9:13 pm

snasui wrote: Fri Nov 08, 2019 8:17 pm :D Code มีไม่ครบครับ บรรทัดบนสุดและล่างสุดจะต้องใส่เข้าไปเอง เป็นปกติที่ผมจะไม่เขียน Code ครบทุกบรรทัดครับ

สังเกตได้ว่าบันทึก Macro แล้วบรรทัดแรกเป็นอะไร บรรทัดสุดท้ายเป็นอะไร เมื่อเขียนเข้าไปเองจะต้องครอบด้วยบรรทัดในลักษณะนั้นเช่นกัน การใช้ Code จะต้องเข้าใจพื้นฐานเหล่านี้ครับ
ผมได้เข้าไปศึกษาและแก้ไขตามข้อแนะนำอาจารย์เรียบร้อยแล้วครับ ติดตรงการสร้างเส้นขอบตารางช่วยแนะนำผมหน่อยครับอาจารย์
Attachments
Materials Issue Form 2.xlsm
(32.78 KiB) Downloaded 19 times

Re: ช่วยแนะนำcode VBA ดึงข้อมูลมาทำรายงานหน่อยครับ

#9

by pro602 » Fri Nov 08, 2019 8:46 pm

snasui wrote: Fri Nov 08, 2019 8:17 pm :D Code มีไม่ครบครับ บรรทัดบนสุดและล่างสุดจะต้องใส่เข้าไปเอง เป็นปกติที่ผมจะไม่เขียน Code ครบทุกบรรทัดครับ

สังเกตได้ว่าบันทึก Macro แล้วบรรทัดแรกเป็นอะไร บรรทัดสุดท้ายเป็นอะไร เมื่อเขียนเข้าไปเองจะต้องครอบด้วยบรรทัดในลักษณะนั้นเช่นกัน การใช้ Code จะต้องเข้าใจพื้นฐานเหล่านี้ครับ
-ขอบคุณครับอาจารย์ ผมจะเข้าไปศึกษาเพิ่มเติมครับ

Re: ช่วยแนะนำcode VBA ดึงข้อมูลมาทำรายงานหน่อยครับ

#8

by snasui » Fri Nov 08, 2019 8:17 pm

:D Code มีไม่ครบครับ บรรทัดบนสุดและล่างสุดจะต้องใส่เข้าไปเอง เป็นปกติที่ผมจะไม่เขียน Code ครบทุกบรรทัดครับ

สังเกตได้ว่าบันทึก Macro แล้วบรรทัดแรกเป็นอะไร บรรทัดสุดท้ายเป็นอะไร เมื่อเขียนเข้าไปเองจะต้องครอบด้วยบรรทัดในลักษณะนั้นเช่นกัน การใช้ Code จะต้องเข้าใจพื้นฐานเหล่านี้ครับ

Re: ช่วยแนะนำcode VBA ดึงข้อมูลมาทำรายงานหน่อยครับ

#7

by pro602 » Fri Nov 08, 2019 8:06 pm

snasui wrote: Fri Nov 08, 2019 7:35 pm :D แนบไฟล์ล่าสุดมาด้วยจะได้ตอบต่อไปจากนั้นครับ
ผมแนบFile มาให้แล้วครับ ผมรบกวนอาจารย์ช่วยแนะนำด้วยครับ
Attachments
Materials Issue Form 1.xlsm
(28.33 KiB) Downloaded 9 times

Re: ช่วยแนะนำcode VBA ดึงข้อมูลมาทำรายงานหน่อยครับ

#6

by snasui » Fri Nov 08, 2019 7:35 pm

:D แนบไฟล์ล่าสุดมาด้วยจะได้ตอบต่อไปจากนั้นครับ

Re: ช่วยแนะนำcode VBA ดึงข้อมูลมาทำรายงานหน่อยครับ

#5

by pro602 » Fri Nov 08, 2019 1:17 pm

logic wrote: Fri Nov 08, 2019 8:28 am
pro602 wrote: Fri Nov 08, 2019 5:31 am หลังจากที่ผมได้เอาCode ตามที่ท่านอาจารย์ได้แนะนำมา มันฟ้องError ตามรูปด้านล่างครับผม
เรียนสอบถามครับตามCodeด้านบนเมื่อมีการเปลี่ยน Section และมีรายการข้อมูลมากกว่าเดิม โปรแกรมก็จะลบและเพิ่มข้อมูลอัตโนมัติพร้อมทำเส้นขอบตารางทั้งหมดตามรายการที่ดึงมาแสดงในหน้ารายงานทั้งหมดใช่ไหมครับ (จากผลที่ลองวางcodeแล้วเจอปัญหา Error ผมขออนุญาตสอบถามไว้เป็นความรู้โดยอ้างอิงจากCodeครับ เผอิญผมเห็นมีกำหนดค่า Range("a5:d21").clearContents คำสั่งนี้หมายถึงคำสั่งแรกจะเคลียร์ข้อมูลใน Cell a5:d21 ใช่ไหมครับและถ้าSection อื่นมีการดึงข้อมูลมามากกว่าช่วง Range a5:d21 การกดปุ่มดึงข้อมูลใน Section ถัดไปก็จะเคลียร์ข้อมูลทั้งหมดก่อนหน้านี้หรือเคลียร์แค่ช่วง a5:d21ครับ)
*ถ้าหากผมนำCode ที่อาจารย์ให้มานำวางหรือใช้งานไม่ถูกจุดเป็นสาเหตุให้เกิดปัญหา Errorช่วยแนะนำผมด้วยครับ*
ที่ผมยกมานี้น่าจะแยกมาเขียนข้างนอกนะ เขียนรวมไปกับโค้ดแล้วอ่านยากหรืออาจจะไม่ได้อ่านเพราะคิดว่ามันเป็นโค้ด

มันผิดพลาดเพราะไม่ได้ลบคำว่า [code] ออก อันนี้ไม่ใช่ VBA เข้าใจว่าเป็นแทกส่วนเกินในช่องความเห็นฟอรัม

a5:d21 ผมเห็นว่าคือช่วงเซลล์ตัวอย่าง คุณใช้จริงถึงไหนก็กำหนดไปตามสะดวก a5:d200000 อะไรแบบนี้

ผมอ่านโค้ดแล้วไม่มีการทำเส้นตาราง ต้องทำเองครับ
ช่วยแนะนำให้หน่อยครับ ผมลบคำว่าcodeก็เหมือนเดิมครับ

Re: ช่วยแนะนำcode VBA ดึงข้อมูลมาทำรายงานหน่อยครับ

#4

by logic » Fri Nov 08, 2019 8:28 am

pro602 wrote: Fri Nov 08, 2019 5:31 am หลังจากที่ผมได้เอาCode ตามที่ท่านอาจารย์ได้แนะนำมา มันฟ้องError ตามรูปด้านล่างครับผม
เรียนสอบถามครับตามCodeด้านบนเมื่อมีการเปลี่ยน Section และมีรายการข้อมูลมากกว่าเดิม โปรแกรมก็จะลบและเพิ่มข้อมูลอัตโนมัติพร้อมทำเส้นขอบตารางทั้งหมดตามรายการที่ดึงมาแสดงในหน้ารายงานทั้งหมดใช่ไหมครับ (จากผลที่ลองวางcodeแล้วเจอปัญหา Error ผมขออนุญาตสอบถามไว้เป็นความรู้โดยอ้างอิงจากCodeครับ เผอิญผมเห็นมีกำหนดค่า Range("a5:d21").clearContents คำสั่งนี้หมายถึงคำสั่งแรกจะเคลียร์ข้อมูลใน Cell a5:d21 ใช่ไหมครับและถ้าSection อื่นมีการดึงข้อมูลมามากกว่าช่วง Range a5:d21 การกดปุ่มดึงข้อมูลใน Section ถัดไปก็จะเคลียร์ข้อมูลทั้งหมดก่อนหน้านี้หรือเคลียร์แค่ช่วง a5:d21ครับ)
*ถ้าหากผมนำCode ที่อาจารย์ให้มานำวางหรือใช้งานไม่ถูกจุดเป็นสาเหตุให้เกิดปัญหา Errorช่วยแนะนำผมด้วยครับ*
ที่ผมยกมานี้น่าจะแยกมาเขียนข้างนอกนะ เขียนรวมไปกับโค้ดแล้วอ่านยากหรืออาจจะไม่ได้อ่านเพราะคิดว่ามันเป็นโค้ด

มันผิดพลาดเพราะไม่ได้ลบคำว่า [code] ออก อันนี้ไม่ใช่ VBA เข้าใจว่าเป็นแทกส่วนเกินในช่องความเห็นฟอรัม

a5:d21 ผมเห็นว่าคือช่วงเซลล์ตัวอย่าง คุณใช้จริงถึงไหนก็กำหนดไปตามสะดวก a5:d200000 อะไรแบบนี้

ผมอ่านโค้ดแล้วไม่มีการทำเส้นตาราง ต้องทำเองครับ

Re: ช่วยแนะนำcode VBA ดึงข้อมูลมาทำรายงานหน่อยครับ

#3

by pro602 » Fri Nov 08, 2019 5:31 am

snasui wrote: Thu Nov 07, 2019 10:20 pm :D ตัวอย่าง Code ที่ปุ่ม A ที่ปุ่มอื่น ๆ ก็เปลี่ยนจาก A ไปเป็น Section ที่จะคัดลอกมาวางครับ

Code: Select all

Dim i As Long, rAll As Range
Worksheets("Report").Range("a5:d21").ClearContents
With Sheets("Data")
    i = Application.Match("A", .Range("a1", .Range("a" & .Rows.Count).End(xlUp)), 0)
    Set rAll = .Range("a" & i, .Range("a" & i).End(xlDown))
    Set rAll = rAll.Resize(rAll.Count - 1, 5)
    rAll.Copy
    Worksheets("Report").Range("a5").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
End With[code]
[/quote]
หลังจากที่ผมได้เอาCode ตามที่ท่านอาจารย์ได้แนะนำมา มันฟ้องError ตามรูปด้านล่างครับผม
เรียนสอบถามครับตามCodeด้านบนเมื่อมีการเปลี่ยน Section และมีรายการข้อมูลมากกว่าเดิม โปรแกรมก็จะลบและเพิ่มข้อมูลอัตโนมัติพร้อมทำเส้นขอบตารางทั้งหมดตามรายการที่ดึงมาแสดงในหน้ารายงานทั้งหมดใช่ไหมครับ (จากผลที่ลองวางcodeแล้วเจอปัญหา Error ผมขออนุญาตสอบถามไว้เป็นความรู้โดยอ้างอิงจากCodeครับ เผอิญผมเห็นมีกำหนดค่า Range("a5:d21").clearContents  คำสั่งนี้หมายถึงคำสั่งแรกจะเคลียร์ข้อมูลใน Cell a5:d21 ใช่ไหมครับและถ้าSection อื่นมีการดึงข้อมูลมามากกว่าช่วง Range a5:d21 การกดปุ่มดึงข้อมูลใน Section ถัดไปก็จะเคลียร์ข้อมูลทั้งหมดก่อนหน้านี้หรือเคลียร์แค่ช่วง a5:d21ครับ) 
*ถ้าหากผมนำCode ที่อาจารย์ให้มานำวางหรือใช้งานไม่ถูกจุดเป็นสาเหตุให้เกิดปัญหา Errorช่วยแนะนำผมด้วยครับ*
Attachments
error.PNG
error.PNG (37.78 KiB) Viewed 189 times

Re: ช่วยแนะนำcode VBA ดึงข้อมูลมาทำรายงานหน่อยครับ

#2

by snasui » Thu Nov 07, 2019 10:20 pm

:D ตัวอย่าง Code ที่ปุ่ม A ที่ปุ่มอื่น ๆ ก็เปลี่ยนจาก A ไปเป็น Section ที่จะคัดลอกมาวางครับ

Code: Select all

Dim i As Long, rAll As Range
Worksheets("Report").Range("a5:d21").ClearContents
With Sheets("Data")
    i = Application.Match("A", .Range("a1", .Range("a" & .Rows.Count).End(xlUp)), 0)
    Set rAll = .Range("a" & i, .Range("a" & i).End(xlDown))
    Set rAll = rAll.Resize(rAll.Count - 1, 5)
    rAll.Copy
    Worksheets("Report").Range("a5").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
End With

ช่วยแนะนำcode VBA ดึงข้อมูลมาทำรายงานหน่อยครับ

#1

by pro602 » Thu Nov 07, 2019 9:47 pm

ก่อนอื่นผมต้องขอขอบคุณพี่ๆสมาชิกและอาจารย์ทุกท่านที่สนับสนุนข้อมูลให้ผมได้นำมาศึกษาและทดลองการเขียนสูตร Excel รวมไปถึงการเขียน vba code ซึ่งผมก็พยายามทดลองแล้วแต่ก็ยังไม่ได้ผลตามที่ต้องการ แต่ก็พอที่จะใช้งานได้บ้างก็เป็นการทำ Record Macro แต่ก็ยังติดปัญหาในกรณีของรายละเอียดหรือจำนวนของข้อมูลแต่ล่ะแผนกที่จะนำมาทำรายงานไม่เท่ากันจึงทำให้รายงานออกมาได้ไม่สมบูรณ์แบบ
จากตัวอย่างที่ผมแนบมาผมรบกวนพี่ๆและอาจารย์ช่วยเขียนVBA Code พอเป็นตัวอย่างสัก1-2sectionให้ผมหน่อยครับเผอิญผมมีความจำเป็นต้องการนำไปใช้งานจริงด่วนครับ รายล่ะเอียดรายงานที่ต้องการจะอยู๋ใน Sheet report ครับ (Fileที่ผมแนบมาผมลองทำ Record Macro ที่ Report for Section A,B และ Delete Data ครับ
Attachments
Materials Issue Form.xlsm
(31.13 KiB) Downloaded 23 times

Top