ในบทความนี้ผมจะมาแชร์ไอเดียที่ช่วยลดเวลาทำงานของพนักงานประจำและเจ้าของธุรกิจ ด้วยการใช้ Excel VBA สร้างใบแจ้งหนี้ PDF แบบอัตโนมัติ ซึ่งประยุกต์ใช้กับฟอร์มอื่นๆ ได้ เช่น ใบเสนอราคา หรือใบกำกับภาษี
Table of Contents
1.ทำไมต้องใช้ Excel VBA นี้สำหรับการสร้างใบแจ้งหนี้ PDF?
1.1) เพิ่มประสิทธิภาพ
ลองนึกภาพนะครับ ถ้าหากใน 1 วันมีคนมาซื้อสินค้าบริษัทเรา 10 คน และใน 10 คนนี้เป็นลูกค้าเก่าที่เคยซื้อกับเราอยู่แล้ว 3 คน จะดีกว่าไหมถ้าหากเรามีการเก็บฐานข้อมูลลูกค้าเก่าไว้หมดแล้ว และเพิ่มข้อมูลเฉพาะลูกค้าใหม่ที่มาซื้อเพิ่มเติม โปรแกรมนี้ผมมีการวางระบบฐานข้อมูลแบบง่ายๆในการเก็บข้อมูลลูกค้าเก่า และมีการผูกสูตร Excel ดึงข้อมูลฐานลูกค้านั้นมาหน้าใบแจ้งหนี้แบบอัตโนมัติให้แล้ว
1.2) ลดเวลาการทำงาน
ผมมีเขียน Code VBA ให้แล้วในไฟส์สามารถกด Run เพียงรอบเดียวจะสามารถสร้างใบแจ้งหนี้แบบอัตโนมัติ 10 ใบได้ทันที (เอาเวลาไปทำอย่างอื่นระหว่างรอได้เลยครับ)
1.3) ลดข้อผิดพลาด
เนื่องจากผมมีผูกสูตร Excel ไว้หมดแล้ว จะกรอกเฉพาะ Sheet หน้าฐานข้อมูลเพียงอย่างเดียวก็เพียงพอในการสร้างใบแจ้งหนี้
1.4) สำหรับเจ้าของธุรกิจขนาดเล็กที่ไม่ต้องการลงทุนมาก
ในหลายๆบริษัทอาจจะไปซื้อโปรแกรมแบบเสียเงินมาเป็นหลักพัน แต่ในบทความนี้ผมแจกไฟส์นี้ให้ฟรีครับ (มูลค่าไฟส์ที่แจกนี้น่าจะหลักร้อยครับ)
2.อธิบายความหมายแต่ละส่วนของโปรแกรม สร้างใบแจ้งหนี้ PDF Excel VBA
ในไฟส์นี้จะแบ่งออกเป็นทั้งหมด 4 Sheet นะครับ โดยจะแบ่งเป็น INVOICE, ออเดอร์, ข้อมูลสินค้า, ข้อมูลลูกค้า
2.1) Sheet Invoice
- สามารถแก้ไขแบบฟอร์ม เช่น ที่อยู่บริษัท, Logo, หมายเหตุได้ตามสะดวกเลยครับ
- ด้านขวามือผมมีเขียน Macro Assign ในปุ่มให้
- Run Invoice PDF Individual : เมื่อกดจะ Save ไฟส์ PDF เฉพาะอันปัจจุบัน
- Run Invoice PDF Batch : เมื่อกดจะ Save ไฟส์ PDF ในคอลัมน์ U ทั้งหมด
- Clear : เมื่อกดจะลบข้อมูลในหน้า Invoice
- File Name : Save ชื่อไฟส์ INV + เลขที่ใบส่งสินค้า
- Save Path : เอา Path ที่เราต้องการ Save มาวางไว้
- คอลัมน์ Run Invoice Batch : เอาหมายเลขที่ใบส่งสินค้าทั้งหมดมาวางไว้ที่จะ Run (เมื่อกดปุ่ม Run Invoice PDF Batch จะ Run เป็น PDF ท้ังหมด
2.2) Sheet ออเดอร์
- Order Date : วันที่สั่งของ
- เลขที่ใบส่งสินค้า : จะเป็นตัวเลข “ปี-เดือน-ลำดับ” ซึ่งผูกสูตรว่าหากมีการ Run เลขในตำแหน่งนี้เพิ่มเติมจะให้ตีเส้นใต้สีแดงเพื่อให้สามารถอ่านง่าย รวมถึง Sheet หน้า Invoice จะดึงข้อมูลหน้านี้ไป
- รหัสลูกค้า : เมื่อกรอกเสร็จจะไปดึงข้อมูลลูกค้ามา
- รหัสสินค้า : เมื่อกรอกเสร็จจะไปดึงข้อมูลสินค้ามา
- จำนวนหน่วย : กรอกจำนวนที่ซื้อ
2.3) Sheet ข้อมูลสินค้า
- รหัสสินค้า : ตั้งรหัสสินค้าให้จำหน่าย เช่นร้านขายเฟอร์นิเจอร์ ผมสมมติรหัส Furniture Table Round (โต๊ะกลมไม้ยางพารา) ก็กำหนดรหัสเป็น FUR-TBL-RND
- ชื่อสินค้า : กรอกชื่อสินค้าลงไป
- ราคาหน่วย : กรอกราคาขาย
- ส่วนลด : กรอกส่วนลด (จะดึงไปคำนวนในหน้า Invoice)
2.4) Sheet ข้อมูลลูกค้า
- รหัสลูกค้า : Run หมายเลขลูกค้าไปเรื่อยๆ
- ชื่อ : กรอกชื่อลูกค้า
- นามสกุล : กรอกนามสกุลลูกค้า
- ที่อยู่ : กรอกที่อยู่ลูกค้า
- เบอร์โทร : กรอกเบอร์โทรลูกค้า
- รหัสผู้เสียภาษี : กรอกรหัสผู้เสียภาษีลูกค้า
3.วิธีการใช้งานไฟส์นี้
3.1) ปรับโครงสร้าง Template หน้าแรกให้เหมาะสมกับบริษัทของเราเอง
- เปลี่ยนโลโก้, ชื่อ ที่อยู่บริษัท, กำหนดเงื่อนไขต่างๆ ให้เหมาะสมกับบริษัทเราเช่น หมายเหตุ, พนักงานขาย, เงื่อนไขกำชำระ
3.2) ปรับข้อมูลสินค้า
- ปรับข้อมูลสินค้าให้สอดคล้องกับบริษัทเรา (ตัวอย่างของผมเป็นร้านทำ เฟอร์นิเจอร์)
3.3) กรณีลูกค้าใหม่มาซื้อ
- กรอกข้อมูลลูกค้าใหม่ลงไปกรอกใน Sheet ข้อมูลลูกค้า
- กรอกข้อมูลออเดอร์ลงไปในแต่ละช่อง ในส่วน รหัสลูกค้าและรหัสสินค้าจะต้องสอดคล้องกับข้อมูลสินค้าและข้อมูลลูกค้า
3.4) กรณีลูกค้าเก่ามาซื้อ
- ไม่ต้องกรอกข้อมูลลูกค้าแล้วเพราะเคยมีฐานข้อมูลเก่า
- กรอกข้อมูลออเดอร์ลงไปในแต่ละช่อง ในส่วน รหัสลูกค้าและรหัสสินค้าจะต้องสอดคล้องกับข้อมูลสินค้าและข้อมูลลูกค้า
3.5) สร้างใบแจ้งหนี้ใบเดียว
- เลือกสถานที่ Save File เอา Path มาใส่ใน Cell X4
- ให้นำเลขที่ใบส่งสินค้ามาใส่ใน Sheet Invoice
- กด Run Invoice PDF individual
3.6) สร้างใบแจ้งหนี้หลายใบ
- เลือกสถานที่ Save File เอา Path มาใส่ใน Cell X4
- ให้นำเลขที่ใบส่งสินค้าหลายๆ ที่จะ Run อันมาใส่ในคอลัมน์ U
- กด Run Invoice PDF Batch
4.การเขียน Code Automatic Invoice Excel VBA
- Sub RunInvoicePDFIndividual()
Sub RunInvoicePDFIndividual()
Application.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Range("X5") & "\" & Range("X4") & ".pdf", Quality:=xlQualityStandard _
, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
- Sub RunInvoicePDFBatch()
Sub RunInvoicePDFBatch()
n = WorksheetFunction.CountA(Columns("U")) - 1
For i = 1 To n
Range("U" & i + 2).Select
Selection.Copy
Range("J10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Range("X5") & "\" & Range("X4") & ".pdf", Quality:=xlQualityStandard _
, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Next
MsgBox "Run Invoice PDF Batch Complete", vbInformation
End Sub
- Sub Clear()
Sub Clear()
Range("J10") = ""
End Sub
5.กรอกอีเมลของคุณด้านล่าง แล้วรับลิงก์ดาวน์โหลด โปรแกรมสร้างใบแจ้งหนี้ Excel VBA Automatic PDF Invoice Using Excel VBA ทันที!
6.คลิปวีดีโอสอน โปรแกรมสร้างใบแจ้งหนี้ PDF อัตโนมัติ ด้วย Excel VBA
หวังว่าบทความนี้จะเป็นประโยชน์สำหรับทุกคนที่ต้องการสร้างใบแจ้งหนี้ Excel VBA นะครับ หากมีคำถามหรือข้อสงสัยเพิ่มเติม สามารถคอมเมนต์หรือสอบถามมาได้เลยครับ แล้วพบกันในบทความถัดไปครับ
ลองดูบทความเพิ่มเติมได้ดังนี้
- Passive Income สำหรับพนักงานประจำ
- สร้างอิสรภาพทางการเงินได้อย่างไร
- รีวิวหนังสือ Grit เคล็ดลับแห่งความสำเร็จ
ปรึกษาเรื่องข้อมูล
รับปรึกษาหรือสอนเรื่องข้อมูล Excel, Data Visulization, Power BI, Dashboard สามารถติดต่อเข้ามาได้ที่
- Line OA : Bookintelligent