এক্সেল ম্যাক্রো ব্যবহার করে আপনি Automated Invoice Generation এবং Email Sending কার্যক্রম স্বয়ংক্রিয় করতে পারেন। এগুলি ব্যবসা পরিচালনার জন্য অত্যন্ত গুরুত্বপূর্ণ, যেখানে প্রতিদিন অনেক ইনভয়েস তৈরি করতে হয় এবং তাদের পাঠানো হয়। VBA কোড ব্যবহার করে, আপনি এক্সেল শীটে থাকা ডেটা থেকে ইনভয়েস তৈরি করতে এবং ইমেইল পাঠাতে পারেন। এতে সময় ও প্রচেষ্টা অনেকটা সাশ্রয় হয়।
এই টিউটোরিয়ালে আমরা আলোচনা করবো কিভাবে এক্সেল ম্যাক্রো ব্যবহার করে ইনভয়েস তৈরি এবং ইমেইল পাঠানো যায়।
১. Automated Invoice Generation
Automated Invoice Generation হল একটি প্রক্রিয়া যেখানে এক্সেল শীটে থাকা ডেটা ব্যবহার করে স্বয়ংক্রিয়ভাবে ইনভয়েস তৈরি করা হয়। এটি সাধারণত Customer Name, Invoice Number, Date, Item Description, Amount, Tax, ইত্যাদি তথ্য অন্তর্ভুক্ত করে।
উদাহরণ: Automated Invoice Generation কোড
ধরা যাক, আপনার কাছে Sales Data শীটে Customer Name, Item Description, Quantity, এবং Unit Price আছে এবং আপনি এই তথ্যের ভিত্তিতে একটি ইনভয়েস তৈরি করতে চান।
Sub GenerateInvoice()
Dim invoiceSheet As Worksheet
Dim salesSheet As Worksheet
Dim customerName As String
Dim item As String
Dim quantity As Double
Dim unitPrice As Double
Dim totalAmount As Double
Dim invoiceNumber As String
Dim lastRow As Long
' Sales Data Sheet এবং Invoice Template Sheet সেট করা
Set salesSheet = ThisWorkbook.Sheets("SalesData")
Set invoiceSheet = ThisWorkbook.Sheets("InvoiceTemplate")
' Sales Data থেকে তথ্য সংগ্রহ করা
lastRow = salesSheet.Cells(salesSheet.Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow ' Assuming data starts from row 2
customerName = salesSheet.Cells(i, 1).Value ' Customer Name
item = salesSheet.Cells(i, 2).Value ' Item Description
quantity = salesSheet.Cells(i, 3).Value ' Quantity
unitPrice = salesSheet.Cells(i, 4).Value ' Unit Price
totalAmount = quantity * unitPrice
' Invoice Number এবং অন্যান্য ডেটা ইনভয়েস টেমপ্লেটে যোগ করা
invoiceNumber = "INV" & Format(Now, "yyyymmddhhmmss")
invoiceSheet.Range("B1").Value = invoiceNumber ' Invoice Number
invoiceSheet.Range("B2").Value = customerName ' Customer Name
invoiceSheet.Range("B3").Value = item ' Item Description
invoiceSheet.Range("B4").Value = quantity ' Quantity
invoiceSheet.Range("B5").Value = unitPrice ' Unit Price
invoiceSheet.Range("B6").Value = totalAmount ' Total Amount
' Save Invoice as PDF
invoiceSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Invoices\" & invoiceNumber & ".pdf"
Next i
End Sub
এখানে:
- Sales Data শীট থেকে Customer Name, Item Description, Quantity, এবং Unit Price সংগ্রহ করা হচ্ছে।
- Invoice Template শীটে সেই ডেটা সন্নিবেশিত করা হচ্ছে এবং ইনভয়েস তৈরি করা হচ্ছে।
- ইনভয়েসটি PDF হিসেবে সেভ করা হচ্ছে।
২. Automated Email Sending
Automated Email Sending এক্সেল ম্যাক্রো ব্যবহার করে আপনার তৈরি করা ইনভয়েস স্বয়ংক্রিয়ভাবে ইমেইল করা সম্ভব। এখানে আমরা Outlook ব্যবহার করে ইমেইল পাঠানোর উদাহরণ দেখাবো। এই কোডটি ব্যবহার করার জন্য আপনার পিসিতে Outlook সেটআপ থাকতে হবে।
উদাহরণ: Automated Email Sending কোড
Sub SendEmailWithInvoice()
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim invoiceFile As String
Dim recipientEmail As String
Dim subject As String
Dim body As String
' Outlook অ্যাপ্লিকেশন তৈরি
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0) ' Creating a new email
' ইনভয়েসের PDF ফাইল এবং ইমেইল ডিটেইলস
invoiceFile = "C:\Invoices\INV20240101103045.pdf" ' আপনার ইনভয়েসের পাথ দিন
recipientEmail = "customer@example.com" ' গ্রাহকের ইমেইল ঠিকানা
subject = "Invoice for Your Recent Purchase"
body = "Dear Customer," & vbCrLf & vbCrLf & _
"Please find attached the invoice for your recent purchase." & vbCrLf & _
"If you have any questions, feel free to reach out." & vbCrLf & vbCrLf & _
"Best Regards," & vbCrLf & "Your Company"
' ইমেইল পাঠানো
With OutlookMail
.To = recipientEmail
.Subject = subject
.Body = body
.Attachments.Add invoiceFile
.Send ' ইমেইল পাঠানো
End With
' Outlook এর অবজেক্ট পরিষ্কার করা
Set OutlookMail = Nothing
Set OutlookApp = Nothing
MsgBox "Invoice Sent Successfully!"
End Sub
এখানে:
- CreateObject("Outlook.Application"): এটি Outlook অ্যাপ্লিকেশন তৈরি করে।
- .To: ইমেইল প্রাপকের ঠিকানা সেট করা হয়।
- .Subject এবং .Body: ইমেইল সাবজেক্ট এবং বডি সেট করা হয়।
- .Attachments.Add: ইনভয়েস পিডিএফ ফাইল ইমেইলে অ্যাটাচ করা হয়।
- .Send: ইমেইল পাঠানো হয়।
৩. Integration Between Invoice Generation and Email Sending
আপনি যদি ইনভয়েস তৈরি এবং ইমেইল পাঠানো একসাথে করতে চান, তাহলে দুটি কার্যক্রমকে একসাথে যুক্ত করতে পারেন।
উদাহরণ: Invoice Generation এবং Email Sending একসাথে
Sub GenerateAndSendInvoice()
Dim invoiceSheet As Worksheet
Dim salesSheet As Worksheet
Dim customerName As String
Dim item As String
Dim quantity As Double
Dim unitPrice As Double
Dim totalAmount As Double
Dim invoiceNumber As String
Dim email As String
Dim lastRow As Long
Dim invoiceFile As String
Dim OutlookApp As Object
Dim OutlookMail As Object
' Sales Data Sheet এবং Invoice Template Sheet সেট করা
Set salesSheet = ThisWorkbook.Sheets("SalesData")
Set invoiceSheet = ThisWorkbook.Sheets("InvoiceTemplate")
' Sales Data থেকে তথ্য সংগ্রহ করা
lastRow = salesSheet.Cells(salesSheet.Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow ' Assuming data starts from row 2
customerName = salesSheet.Cells(i, 1).Value ' Customer Name
item = salesSheet.Cells(i, 2).Value ' Item Description
quantity = salesSheet.Cells(i, 3).Value ' Quantity
unitPrice = salesSheet.Cells(i, 4).Value ' Unit Price
totalAmount = quantity * unitPrice
email = salesSheet.Cells(i, 5).Value ' Customer Email
' Invoice Number এবং অন্যান্য ডেটা ইনভয়েস টেমপ্লেটে যোগ করা
invoiceNumber = "INV" & Format(Now, "yyyymmddhhmmss")
invoiceSheet.Range("B1").Value = invoiceNumber ' Invoice Number
invoiceSheet.Range("B2").Value = customerName ' Customer Name
invoiceSheet.Range("B3").Value = item ' Item Description
invoiceSheet.Range("B4").Value = quantity ' Quantity
invoiceSheet.Range("B5").Value = unitPrice ' Unit Price
invoiceSheet.Range("B6").Value = totalAmount ' Total Amount
' Save Invoice as PDF
invoiceFile = "C:\Invoices\" & invoiceNumber & ".pdf"
invoiceSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=invoiceFile
' Email sending via Outlook
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = email
.Subject = "Invoice for Your Recent Purchase"
.Body = "Dear " & customerName & "," & vbCrLf & vbCrLf & _
"Please find attached the invoice for your recent purchase." & vbCrLf & _
"If you have any questions, feel free to reach out." & vbCrLf & vbCrLf & _
"Best Regards," & vbCrLf & "Your Company"
.Attachments.Add invoiceFile
.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Next i
MsgBox "Invoices generated and sent successfully!"
End Sub
এখানে:
- GenerateAndSendInvoice কোডটি ইনভয়েস তৈরি করে এবং তারপর প্রাপককে ইমেইল পাঠায়।
- ইনভয়েস পিডিএফ ফাইল তৈরি করে সেটি ইমেইলে সংযুক্ত করা হয়।
সারাংশ
Automated Invoice Generation এবং Email Sending এক্সেল ম্যাক্রো ব্যবহার করে আপনি ব্যবসায়িক কার্যক্রম দ্রুত এবং কার্যকরীভাবে সম্পন্ন করতে পারেন। VBA কোডের মাধ্যমে ইনভয়েস তৈরি করা এবং সেগুলো ইমেইল পাঠানো পুরোপুরি অটোমেটেড করা সম্ভব। এর মাধ্যমে আপনি সময় সাশ্রয় করতে পারেন এবং একই কাজ বারবার করার ঝামেলা থেকে মুক্তি পাবেন।
Read more