Automated Invoice Generation এবং Email Sending গাইড ও নোট

Big Data and Analytics - এক্সেল ম্যাক্রো (Excel Macros) - Macros এর জন্য Real-world Projects
307

এক্সেল ম্যাক্রো ব্যবহার করে আপনি 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 কোডের মাধ্যমে ইনভয়েস তৈরি করা এবং সেগুলো ইমেইল পাঠানো পুরোপুরি অটোমেটেড করা সম্ভব। এর মাধ্যমে আপনি সময় সাশ্রয় করতে পারেন এবং একই কাজ বারবার করার ঝামেলা থেকে মুক্তি পাবেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...