Inventory Management System এক্সেল ম্যাক্রো ব্যবহার করে তৈরি করা একটি কার্যকরী উপায় যা ছোট বা মাঝারি আকারের ব্যবসায়ের জন্য উপযোগী। এই সিস্টেমে, আপনি পণ্য/মালামাল, তাদের স্টক, বিক্রি এবং ক্রয়ের তথ্য ট্র্যাক করতে পারেন। এক্সেল ম্যাক্রো ব্যবহার করে আপনি ইনভেন্টরি পরিচালনার জন্য অটোমেশন এবং রিপোর্ট তৈরি করতে পারেন।
এই টিউটোরিয়ালে আমরা একটি সিম্পল Inventory Management System তৈরি করবো, যেখানে আপনি পণ্যের নাম, কোড, মাপ, স্টক এবং বিক্রির তথ্য সংরক্ষণ এবং অটোমেট করতে পারবেন।
ইনভেন্টরি সিস্টেমের জন্য ডেটা কাঠামো
প্রথমে আমাদের Inventory সম্পর্কিত কিছু তথ্য সন্নিবেশিত করতে হবে। এতে থাকবে:
- Product Code: পণ্যের ইউনিক কোড
- Product Name: পণ্যের নাম
- Quantity in Stock: বর্তমান স্টক
- Price per Unit: প্রতি ইউনিটের দাম
- Quantity Sold: বিক্রি হওয়া পরিমাণ
- Total Sales: বিক্রির মোট মূল্য
এই তথ্যগুলো এক্সেল শীটে রাখা হবে এবং এক্সেল ম্যাক্রো দ্বারা পরিচালিত হবে।
১. Inventory Sheet তৈরি করা
প্রথমে একটি শীট তৈরি করুন যার মধ্যে নিচের কলামগুলো থাকবে:
- Column A: Product Code
- Column B: Product Name
- Column C: Quantity in Stock
- Column D: Price per Unit
- Column E: Quantity Sold
- Column F: Total Sales
এটি হবে আমাদের ইনভেন্টরি ডেটাবেস।
২. Inventory Management Macros
এখন, ম্যাক্রো কোড ব্যবহার করে আমরা পণ্য যোগ, পণ্য বিক্রি এবং স্টক আপডেট করতে সক্ষম হবো।
২.১. Product Add (পণ্য যোগ করা)
যখন নতুন পণ্য যোগ করতে হবে, তখন একটি ম্যাক্রো ব্যবহার করা হবে যা নতুন পণ্য সেলসমূহ ইনপুট নিতে এবং সেই অনুযায়ী ডেটাবেসে যোগ করবে।
Sub AddProduct()
Dim lastRow As Long
lastRow = ThisWorkbook.Sheets("Inventory").Cells(Rows.Count, 1).End(xlUp).Row + 1
' Product details input
ThisWorkbook.Sheets("Inventory").Cells(lastRow, 1).Value = InputBox("Enter Product Code:")
ThisWorkbook.Sheets("Inventory").Cells(lastRow, 2).Value = InputBox("Enter Product Name:")
ThisWorkbook.Sheets("Inventory").Cells(lastRow, 3).Value = InputBox("Enter Quantity in Stock:")
ThisWorkbook.Sheets("Inventory").Cells(lastRow, 4).Value = InputBox("Enter Price per Unit:")
ThisWorkbook.Sheets("Inventory").Cells(lastRow, 5).Value = 0 ' Initially, no sales
ThisWorkbook.Sheets("Inventory").Cells(lastRow, 6).Value = 0 ' Initially, no sales
End Sub
ব্যাখ্যা:
lastRowকোডটি ডেটাবেসের শেষ সেলটি খুঁজে বের করে, যাতে নতুন পণ্য সঠিক স্থানে যোগ করা যায়।InputBoxব্যবহার করে পণ্যের কোড, নাম, স্টক এবং দাম ইনপুট নেয়া হচ্ছে।
২.২. Product Sale (পণ্য বিক্রি)
এই ম্যাক্রোটি ব্যবহারকারীদের বিক্রি হওয়া পণ্য এবং পরিমাণ ইনপুট দিতে সহায়তা করবে, এবং এর মাধ্যমে স্টক ও বিক্রির তথ্য আপডেট হবে।
Sub SellProduct()
Dim productCode As String
Dim quantitySold As Long
Dim productRow As Long
Dim totalSales As Double
' Product Code input
productCode = InputBox("Enter Product Code to Sell:")
' Find the product in the inventory
productRow = Application.Match(productCode, ThisWorkbook.Sheets("Inventory").Range("A:A"), 0)
If Not IsError(productRow) Then
' Get quantity sold
quantitySold = InputBox("Enter Quantity Sold:")
' Update stock and sales
If ThisWorkbook.Sheets("Inventory").Cells(productRow, 3).Value >= quantitySold Then
' Update Quantity in Stock
ThisWorkbook.Sheets("Inventory").Cells(productRow, 3).Value = ThisWorkbook.Sheets("Inventory").Cells(productRow, 3).Value - quantitySold
' Update Total Sales
totalSales = quantitySold * ThisWorkbook.Sheets("Inventory").Cells(productRow, 4).Value
ThisWorkbook.Sheets("Inventory").Cells(productRow, 6).Value = ThisWorkbook.Sheets("Inventory").Cells(productRow, 6).Value + totalSales
MsgBox "Product Sold Successfully"
Else
MsgBox "Not enough stock available"
End If
Else
MsgBox "Product Code not found"
End If
End Sub
ব্যাখ্যা:
- Application.Match ফাংশনটি পণ্যের কোডের জন্য ইনভেন্টরি শীটে সার্চ করে সঠিক পণ্যের সারি খুঁজে বের করে।
- বিক্রি হওয়া পরিমাণের ভিত্তিতে স্টক এবং বিক্রির মোট মূল্য আপডেট করা হচ্ছে।
২.৩. Generate Sales Report (বিক্রির রিপোর্ট তৈরি করা)
একটি রিপোর্ট তৈরি করা যা ইনভেন্টরিতে থাকা সব পণ্যের বিক্রির তথ্য দেখাবে।
Sub GenerateSalesReport()
Dim lastRow As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("SalesReport")
' Clear previous report
ws.Cells.Clear
' Set headers
ws.Cells(1, 1).Value = "Product Code"
ws.Cells(1, 2).Value = "Product Name"
ws.Cells(1, 3).Value = "Quantity Sold"
ws.Cells(1, 4).Value = "Total Sales"
' Get data from Inventory
lastRow = ThisWorkbook.Sheets("Inventory").Cells(Rows.Count, 1).End(xlUp).Row
ThisWorkbook.Sheets("Inventory").Range("A2:F" & lastRow).Copy ws.Range("A2")
MsgBox "Sales Report Generated"
End Sub
ব্যাখ্যা:
- SalesReport শীটে বিক্রির রিপোর্ট তৈরি করা হচ্ছে, যেখানে Inventory শীটের ডেটা কপি করা হবে।
- পণ্যের কোড, নাম, বিক্রি হওয়া পরিমাণ, এবং মোট বিক্রির মূল্য রিপোর্টে প্রদর্শিত হবে।
৩. ইনভেন্টরি শীটের Layout
এখন, আপনার Inventory শীটটি কিছু এভাবে দেখাবে:
| Product Code | Product Name | Quantity in Stock | Price per Unit | Quantity Sold | Total Sales |
|---|---|---|---|---|---|
| P001 | Product 1 | 100 | 50 | 0 | 0 |
| P002 | Product 2 | 200 | 30 | 0 | 0 |
| P003 | Product 3 | 150 | 20 | 0 | 0 |
এবং SalesReport শীটটি বিক্রির রিপোর্টের জন্য প্রস্তুত থাকবে।
৪. টেস্টিং এবং অপ্টিমাইজেশন
একবার কোড তৈরি করা হলে, কোডটি এক্সেল ফাইলটিতে Macro হিসেবে সংরক্ষণ করুন এবং সেগুলোর কার্যকারিতা পরীক্ষা করুন। প্রয়োজন হলে কোড অপ্টিমাইজ করুন এবং ভুল ত্রুটি ঠিক করুন।
সারাংশ
এই Inventory Management System টিউটোরিয়ালে আপনি শিখলেন কীভাবে এক্সেল ম্যাক্রো ব্যবহার করে পণ্য যোগ করা, বিক্রি করা এবং বিক্রির রিপোর্ট তৈরি করা যায়। ম্যাক্রো কোডের মাধ্যমে আপনি ইনভেন্টরি পরিচালনা এবং অটোমেট করা, যা আপনার সময় সাশ্রয়ী করে এবং ব্যবসায়ের ইনভেন্টরি ম্যানেজমেন্টের কার্যক্রমকে আরও কার্যকরী করে তোলে।
Read more