যখন এক্সেলকে স্পষ্ট ফরম্যাটিং, একটি লুকানো লজিক লেয়ার, বাটন, ফর্ম, এবং ডাইনামিক ইন্টারেক্টিভ ফিচারের সাথে স্ট্রাকচার করা হয়, তবে এটি একটি মিনি অ্যাপ প্ল্যাটফর্মে পরিণত হয়। বাটন, ফর্ম কন্ট্রোল, এবং লুকানো লজিক কম্বাইন করে আপনি ডেটা এন্ট্রি, ড্যাশবোর্ড, বা প্রসেস ট্র্যাকিং-এর জন্য ইন্টারেক্টিভ টুল বানাতে পারেন।
এই টিউটোরিয়ালে, আমরা দেখাব কীভাবে বাটন, ফর্ম, এবং লুকানো লজিক ব্যবহার করে এক্সেলকে একটি বেসিক অ্যাপে পরিণত করব।
স্টেপ ১: অ্যাপ ফিচার পরিকল্পনা করুন
এক্সেলকে অ্যাপ বানাতে, আপনাকে পরিকল্পনা করতে হবে আপনি কী চান এবং আপনার অ্যাপ কী করবে। ধরি আমরা একটি অ্যাপ বানাব যা একটি ফর্ম দিয়ে অর্ডার নেবে এবং অর্ডার ডেটা সংরক্ষণ করবে।
এই শিটগুলো তৈরি করুন:
- Home: বড় বাটন সহ একটি ক্লিন ল্যান্ডিং পেজ ("Add Order", "OrderData" "Dashboard")।
- Form: ইউজার-ফেসিং ইনপুট (ড্রপ-ডাউন, ডেট, নাম্বার ফিল্ড) সাথে Submit Order বাটন।
- OrderData: একটি একক এক্সেল টেবিল যা সকল রেকর্ড সংরক্ষণ করে (এটাকে আপনার ডাটাবেস ভাবুন)।
- Logic: হেল্পার টেবিল, নেমড রেঞ্জ, ভ্যালিডেশন রুল, এবং আইডি কাউন্টারের জন্য একটি লুকানো শিট।
- Dashboard: আপনি চাইলে সেলস ডেটা থেকে একটি ড্যাশবোর্ড তৈরি করতে পারেন ছোট KPI কার্ড এবং চার্ট Logic শিট থেকে ফিডেড।
স্টেপ ২: অর্ডার ফর্ম শিট তৈরি করুন
- Order Form নামে একটি নতুন শিট তৈরি করুন।
- কলাম A-তে নিচের ইনপুট লেবেলগুলো লিস্ট করুন:
- Order ID
- Date
- Category
- Product
- Units
- Unit Price
- Total Amount
- কলাম B-তে এন্ট্রির জন্য খালি সেল রাখুন:
- ফর্মটি সুন্দর ফরম্যাট করুন:
- কলাম প্রস্থ সামঞ্জস্য করুন।
- সেল বর্ডার যোগ করুন।
স্টেপ ৩: ফর্ম কন্ট্রোল যোগ করুন
ফর্মটি ডাইনামিক এবং ইন্টারেক্টিভ করার জন্য, আপনি ড্রপ-ডাউন লিস্ট ব্যবহার করতে পারেন। একটি লজিক শিটে সকল ইনফরমেশন যেমন ক্যাটাগরি, প্রোডাক্ট, প্রাইস ইত্যাদি লিস্ট করুন। তারপর ফর্ম কন্ট্রোলগুলোর জন্য নেমড রেঞ্জ তৈরি করুন।
নেমড রেঞ্জ তৈরি করুন:
- ক্যাটাগরির সাথে প্রোডাক্ট নাম লিস্ট করুন।
- Formulas ট্যাবে যান >> Name Manager সিলেক্ট করুন >> New সিলেক্ট করুন।
Category:
- Name: Category-এ।
- Refers to:-এ
Products:
- ক্যাটাগরি এবং প্রোডাক্ট সিলেক্ট করুন।
- Formulas ট্যাবে যান >> Create from Selection সিলেক্ট করুন।
- Top row সিলেক্ট করুন।
- OK ক্লিক করুন।
Unit_Price:
- প্রোডাক্ট নাম এবং প্রাইস সিলেক্ট করুন।
- Formulas ট্যাবে যান >> Create from Selection সিলেক্ট করুন।
- Left column সিলেক্ট করুন।
- OK ক্লিক করুন।
ড্রপ-ডাউন লিস্ট তৈরি করুন:
Category:
- সেল B4 সিলেক্ট করুন।
- Data ট্যাবে যান >> Data Validation সিলেক্ট করুন।
- Allow-এর নিচে List সিলেক্ট করুন।
- Source:-এ নেমড রেঞ্জ ইনসার্ট করুন।
- OK ক্লিক করুন।
Product:
- সেল B5 সিলেক্ট করুন এবং একটি ডিপেন্ডেন্ট ড্রপ-ডাউন লিস্ট তৈরি করুন।
- Data ট্যাবে যান >> Data Validation সিলেক্ট করুন।
- Allow-এর নিচে List সিলেক্ট করুন।
- Source:-এ নিচের ফর্মুলা ইনসার্ট করুন।
- OK ক্লিক করুন।
- আপনি ক্যাটাগরি বেসড প্রোডাক্ট সিলেক্ট করতে পারেন।
Units:
- সেল B6 সিলেক্ট করুন।
- Data ট্যাবে যান >> Data Validation সিলেক্ট করুন।
- Allow-এর নিচে List সিলেক্ট করুন।
- Source:-এ ১০ পর্যন্ত লিস্ট ইনসার্ট করুন।
- OK ক্লিক করুন।
Unit Price:
- সেল B7 সিলেক্ট করুন।
- Data ট্যাবে যান >> Data Validation সিলেক্ট করুন।
- Allow-এর নিচে List সিলেক্ট করুন।
- Source:-এ নিচের ফর্মুলা ইনসার্ট করুন।
- OK ক্লিক করুন।
=INDIRECT(SUBSTITUTE(B5, " ", "_"))
- এটি একটি ডিপেন্ডেন্ট ড্রপ-ডাউন লিস্ট।
- আপনি প্রোডাক্ট বেসড প্রাইস সিলেক্ট করতে পারেন।
সাবমিট বাটন যোগ করুন:
- Developer ট্যাবে যান >> Insert >> Form Controls- থেকে Button সিলেক্ট করুন।
- ফর্মের নিচে বাটন আঁকুন।
- এটিকে “Submit Order” নাম দিন।
- এখন যেনই রেখে দিন, স্টেপ ৫-এ ম্যাকরো অ্যাসাইন করব।
স্টেপ ৪. অর্ডার ডাটাবেস এবং ড্যাশবোর্ড শিট তৈরি করুন
- OrderData নামে একটি নতুন শিট যোগ করুন।
- Row 1-এ নিচের হেডারগুলো যোগ করুন:
- Order_ID
- Date
- Category
- Product
- Unit_Price
- Units
- Total_Amount
- বादে এই শিটটি লুকিয়ে দিব যাতে ব্যাকএন্ড ইউজার থেকে আলাদা থাকে।
স্টেপ ৫: VBA লজিক যোগ করুন
এখন, আমরা ফর্ম ডেটা OrderData শিটে সাবমিট করতে VBA কোড ব্যবহার করব। এই VBA কোড ফর্ম ডেটাকে ডাটাবেসে কপি করবে এবং পরবর্তী এন্ট্রির জন্য ফর্মটি ক্লিয়ার করবে।
- SubmitOrder বাটনে রাইট-ক্লিক করুন >> Assign Macro >> New ক্লিক করুন।
- নিচের কোড ইনসার্ট করুন।
Sub SubmitOrder()
Dim wsForm As Worksheet, wsDB As Worksheet
Dim nextRow As Long
Dim lastOrderID As String
Dim newOrderNum As Long
Set wsForm = ThisWorkbook.Sheets("Order Form")
Set wsDB = ThisWorkbook.Sheets("OrderData")
' ডাটাবেসে পরবর্তী খালি সারি খুঁজুন
nextRow = wsDB.Cells(wsDB.Rows.Count, "A").End(xlUp).Row + 1
' লাস্ট অর্ডার আইডি পান (হেডার বাদ দিয়ে)
If nextRow = 2 Then
' কোনো অর্ডার নেই? ১০০১ থেকে শুরু
newOrderNum = 1001
Else
lastOrderID = wsDB.Cells(nextRow - 1, 1).Value ' e.g., ORD-1005
newOrderNum = CLng(Replace(lastOrderID, "ORD-", "")) + 1
End If
' বর্তমান অর্ডার ডাটাবেসে সংরক্ষণ করুন
wsDB.Cells(nextRow, 1).Value = "ORD-" & newOrderNum
wsDB.Cells(nextRow, 2).Value = wsForm.Range("B3").Value ' Date
wsDB.Cells(nextRow, 3).Value = wsForm.Range("B4").Value ' Category
wsDB.Cells(nextRow, 4).Value = wsForm.Range("B5").Value ' Product
wsDB.Cells(nextRow, 5).Value = wsForm.Range("B6").Value ' Units
wsDB.Cells(nextRow, 6).Value = wsForm.Range("B7").Value ' Unit Price
wsDB.Cells(nextRow, 7).Value = wsForm.Range("B8").Value ' Revenue
' === সেফ ক্লিয়ার: শুধু ভ্যালু ===
Application.EnableEvents = False
wsForm.Range("B3").Value = vbNullString
wsForm.Range("B4").Value = vbNullString ' Category (keeps DV)
wsForm.Range("B5").Value = vbNullString ' Product (keeps DV)
wsForm.Range("B6").Value = vbNullString ' Units (keeps DV)
wsForm.Range("B7").Value = vbNullString ' Unit Price (keeps DV)
wsForm.Range("B8").Formula = "=B6*B7" ' Revenue ফর্মুলা রিস্টোর
Application.EnableEvents = True
' পরবর্তী এন্ট্রির জন্য পরবর্তী অর্ডার আইডি জেনারেট করুন
wsForm.Range("B2").Value = "ORD-" & (newOrderNum + 1)
MsgBox "Order submitted successfully!", vbInformation
End Sub
ব্যাখ্যা:
- অর্ডার আইডি প্রতিটি সাবমিশনের পর অটোমেটিক্যালি ইনক্রিমেন্ট হয়।
- প্রথম সাবমিশন ডাটাবেস খালি থাকলে ORD-1001 থেকে শুরু হয়।
- প্রতিটি ক্লিকের পর:
- ম্যাকরো লাস্ট স্টোর করা অর্ডার নম্বর চেক করে।
- এটিকে ১ দিয়ে ইনক্রিমেন্ট করে।
- ফর্মের B2-তে পরবর্তী উপলব্ধ আইডি ফিল করে।
- এটি শুধু ভ্যালু ক্লিয়ার করে, ফর্মুলা বা ডেটা ভ্যালিডেশন না, যাতে পরবর্তী এন্ট্রি फ्रেশ শুরু হয়।
স্টেপ ৬: ড্যাশবোর্ড শিট তৈরি করুন
এখন আপনি অর্ডার ডেটা বেস করে একটি ড্যাশবোর্ড তৈরি করতে পারেন।
- KPI তৈরি করুন: টোটাল অর্ডার, সেলস, ইউনিট সোল্ড, এভারেজ অর্ডার ভ্যালু, ইত্যাদি ক্যালকুলেট করুন।
- চার্ট ইনসার্ট করুন: একটি ডাইনামিক চার্ট বা PivotChart ইনসার্ট করুন।
স্টেপ ৭: অ্যাপ লুক দিতে শিটগুলো ফরম্যাট করুন
হোমপেজ তৈরি করুন:
- Insert ট্যাবে যান >> Illustrations >> Shapes সিলেক্ট করুন।
- Button সিলেক্ট করুন।
- সেলে বাটন টেনে আনুন।
- শেপে রাইট-ক্লিক করুন >> Link সিলেক্ট করুন।
- Place in This Document সিলেক্ট করুন >> শিট সেল সিলেক্ট করুন (নেভিগেশন বাটন, কোনো কোড নেই)।
- Order Form সিলেক্ট করুন।
- OK ক্লিক করুন।
- সিমিলার স্টেপস অনুসরণ করে Dashboard এবং OrderData শিটের জন্য হাইপারলিংক ইনসার্ট করুন।
- পরে সিকিউরিটি উদ্দেশ্যে OrderData লক করুন।
লজিক লুকান:
এক্সেলকে আরও অ্যাপের মত করার জন্য:
- শিটটি সিলেক্ট করুন।
- রাইট-ক্লিক >> Hide সিলেক্ট করুন।
- Order Form শিট প্রোটেক্ট করুন যাতে শুধু ইনপুট সেলগুলো পরিবর্তন করা যায়।
- View ট্যাবে যান:
- Formula Bar আনচেক করুন।
- Gridline আনচেক করুন।
স্টেপ ৮: অর্ডার অ্যাপ টেস্ট করুন
- একটি উদাহরণ অর্ডার এন্টার করুন:
- Order ID: এটি অটোমেটিক্যালি অর্ডার আইডি এন্টার করবে।
- Date: 3/1/2025 ডেট ইনসার্ট করুন
- Category: ড্রপ-ডাউন লিস্ট থেকে ক্যাটাগরি সিলেক্ট করুন।
- Product: ডিপেন্ডেন্ট ড্রপ-ডাউন থেকে Mouse সিলেক্ট করুন।
- Units: লিস্ট থেকে ইউনিট নম্বর সিলেক্ট করুন।
- Unit Price: ডিপেন্ডেন্ট ড্রপ-ডাউন থেকে প্রাইস সিলেক্ট করুন।
- Revenue: অটো-ক্যালকুলেট হয়।
- Submit Order ক্লিক করুন।
- পরবর্তী Order ID অটোমেটিক্যালি見える হবে।
- ফর্ম পরবর্তী অর্ডারের জন্য ক্লিয়ার হয়ে যাবে।
- ফর্ম সাবমিশন সফল হলে একটি মেসেজ বক্স পপ আপ হবে।
- OK ক্লিক করুন।
- OrderData শিট চেক করুন; এন্ট্রি সেখানে অটোমেটিক্যালি দেখাবে।
উপসংহার
আপনি উপরের ধাপগুলো অনুসরণ করে একটি এক্সেল শিটকে অ্যাপে পরিণত করতে পারেন। আপনি বাটন, ফর্ম, এবং লুকানো লজিক ব্যবহার করে একটি ডাইনামিক অ্যাপ তৈরি করতে পারেন। এই অ্যাপ-মত টুল ডেটা এন্ট্রি স্ট্রিমলাইন করতে এবং ইউজার এরর কমাতে একটি শক্তিশালী উপায়, বিশেষায়িত সফ্টওয়্যারে বিনিবেশ ছাড়া। একটি ক্লিন ফ্রন্ট-এন্ড ফর্ম, ডেটা ভ্যালিডেশন ড্রপ-ডাউন, একটি লুকানো ডাটাবেস শিট, এবং VBA অটোমেশন কম্বাইন করে আমরা একটি সম্পূর্ণ ফাংশনাল অর্ডার ম্যানেজমেন্ট সিস্টেম তৈরি করেছি। আপনি এই সেটআপকে ড্যাশবোর্ড, সামারি রিপোর্ট, বা এমনকি Power Query ইন্টিগ্রেশন দিয়ে আরও উন্নত অ্যানালিটিক্সের জন্য এক্সটেন্ড করতে পারেন।
Get FREE Advanced Excel Exercises with Solutions!