একটি মাল্টিপল ডিপেন্ডেন্ট ড্রপ-ডাউন তৈরি করা সবসময়ই MS Excel-এ একটি চ্যালেঞ্জ। যখন দুটি ড্রপ-ডাউন তালিকার মধ্যে নির্ভরতা বা সম্পর্ক থাকে তখন আমাদের এই ধরনের ড্রপ-ডাউন তালিকা প্রয়োজন। আমরা সাধারণত ভিন্ন সূত্র ব্যবহার করে এটি তৈরি করি বা এক্সেলে উপযুক্ত বিকল্প পরিবর্তন করা। যাইহোক, এক্সেল VBA কোড ব্যবহার করে একাধিক ড্রপ-ডাউন তালিকা তৈরি করার কিছু সহজ উপায় রয়েছে। এই নিবন্ধে, আমি Excel-এ VBA কোড ব্যবহার করে একাধিক ড্রপ-ডাউন তালিকা তৈরি করার বিভিন্ন উপায় দেখাব৷
আরো পড়ুন: এক্সেলে ড্রপ ডাউন তালিকা কীভাবে তৈরি করবেন (স্বাধীন এবং নির্ভরশীল)
Excel এ নির্ভরশীল ড্রপ-ডাউন তালিকা কি?
মূল প্রক্রিয়ায় যাওয়ার আগে চলুন জেনে নেওয়া যাক এক্সেলে নির্ভরশীল ড্রপ-ডাউন তালিকা কী। যখন দুই বা ততোধিক ড্রপ-ডাউন তালিকার মধ্যে নির্ভরতা থাকে তখন আমরা সেগুলিকে এক্সেলে নির্ভরশীল ড্রপ-ডাউন তালিকা বলি। নীচের ছবিটি নির্ভরশীল ড্রপ-ডাউন তালিকা সম্পর্কে একটি স্পষ্ট ধারণা উপস্থাপন করে৷
আমরা এখানে দেখতে পাচ্ছি দুটি ড্রপ-ডাউন তালিকা বিভাগ এবং খাদ্য সম্পূর্ণরূপে দুটি নির্ভরশীল ড্রপ-ডাউন তালিকা। বিভাগ নির্বাচনের উপর নির্ভর করে আমরা এখানে খাবারের তালিকা নির্ধারণ করি। এইভাবে, একাধিক ক্যাসকেডিং ড্রপ-ডাউন তালিকা কিভাবে কাজ করে।
আরো পড়ুন: এক্সেলে কিভাবে ডায়নামিক ডিপেন্ডেন্ট ড্রপ ডাউন লিস্ট তৈরি করবেন
একাধিক নির্ভরশীল ড্রপ-ডাউন তালিকা এক্সেল VBA তৈরি করার 3 উপায়
1. কিভাবে Excel VBA-এ ড্রপ-ডাউন তালিকায় একাধিক নির্বাচন করা যায়
ধরা যাক আমাদের কাছে প্রকল্পের নাম এবং প্রকল্প সদস্য নামে দুটি তালিকা রয়েছে। প্রতিটি প্রকল্পের জন্য, আমরা একটি ড্রপ-ডাউন তালিকা ব্যবহার করে এক বা একাধিক সদস্য নিয়োগ করব৷
৷
ধাপ 1: ডেভেলপার -এ যান ট্যাব খুলুন এবং ভিজ্যুয়াল বেসিক খুলুন (শর্টকাট Alt + F11 )
ধাপ 2: সংশ্লিষ্ট VBAProject মেনু থেকে সংশ্লিষ্ট ওয়ার্কশীটে যান।
ধাপ 3: এখন VBA কনসোলে নিম্নলিখিত কোডটি লিখুন
কোড:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Old_value As String
Dim New_value As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Not Intersect(Target, Range("C4:C11")) Is Nothing Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
New_value = Target.Value
Application.Undo
Old_value = Target.Value
If Old_value = "" Then
Target.Value = New_value
Else
If InStr(1, Old_value, New_value) = 0 Then
Target.Value = Old_value & ", " & New_value
Else:
Target.Value = Old_value
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
পদক্ষেপ 4: এখন প্রকল্প সদস্য কলামে একাধিক নাম নির্বাচন করুন
ধাপ 5: সমস্ত ঘর ড্রপ-ডাউন তালিকা থেকে একাধিক নির্বাচন করতে পারে
আরো পড়ুন: এক্সেলে ড্রপ ডাউন তালিকা থেকে কিভাবে একাধিক নির্বাচন করবেন
2. এক্সেল VBAতে একাধিক নির্ভরশীল ড্রপ-ডাউন তালিকা তৈরি করুন
আসুন বিভিন্ন শ্রেণীর খাবার যেমন শাকসবজি, ফল এবং দুগ্ধজাত পণ্যের একটি ডেটাসেট আছে। এখন আমরা তাদের বিভাগ অনুযায়ী খাদ্য আইটেম অনুসন্ধান করতে চাই. যেমন আমরা যদি ফল হিসাবে বিভাগটি নির্বাচন করি তবে খাদ্য কলামে উপলব্ধ আইটেমগুলি রাস্পবেরি, এপ্রিকট, পীচ, আম হওয়া উচিত। সুতরাং, ক্যাটাগরি অনুযায়ী খাবারের আইটেম পাওয়া উচিত। বিভাগ এবং খাদ্যের মধ্যে একটি নির্ভরতা রয়েছে৷
ধাপ 1: পদ্ধতি 1 থেকে একই ধাপ অনুসরণ করে VBA কনসোল খুলুন (ধাপ 1 এবং ধাপ 2 ) তারপর নিম্নলিখিত কোড লিখুন
কোড:
একটি উদ্ভিজ্জ ড্রপ-ডাউন তালিকা তৈরি করার জন্য:
Sub Vegetable_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Vegetable_List"
End Sub
একটি ফলের ড্রপ-ডাউন তালিকা তৈরি করার জন্য:
Sub Fruit_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Fruits_list"
End Sub
দুগ্ধজাত পণ্যের ড্রপ-ডাউন তালিকা তৈরি করার জন্য:
Sub Dairy_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Dairy_Product_List"
End Sub
এই অংশে, আমরা পৃথক খাদ্য আইটেমগুলির তালিকা তৈরি করছি এবং সেগুলিকে একটি ড্রপ-ডাউন তালিকায় সংরক্ষণ করছি। এই তালিকাটি C4:C6-এ পাওয়া যাবে পরিসীমা।
ধাপ 2: এখন আমাদের রেঞ্জের জন্য প্রধান ফাংশন লিখতে হবেB4:B6
কোড:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("B4:B6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="Vegetable_List,Fruits_list,Dairy_Product_List"
If Range("B4:B6").Value = "Vegetable_List" Then
Call Vegetable_List
ElseIf Range("B4:B6").Value = "Fruits_list" Then
Call Fruit_List
ElseIf Range("B4:B6").Value = "Dairy_Product_List" Then
Call Dairy_List
Else
End If
কোড ব্যাখ্যা
- এখানে আমরা B4:B6-এ বিভাগের জন্য নামকরণ করা আরেকটি তালিকা তৈরি করছি পরিসীমা, যাতে খাবারের বিভাগের নাম থাকবে।
- তারপর তাদের আইটেম অনুসারে তালিকার মান এবং বিভাগগুলি পরীক্ষা করছে। এর জন্য যদি অন্যথায় স্টেটমেন্ট ব্যবহার করা হয়।
- যদি আমরা কোনো মিলিত নাম খুঁজে পাই, তাহলে আমরা শুধু কলব্যাক পদ্ধতি ব্যবহার করে তালিকা তৈরির ফাংশনকে কল করি। লাইক
যদি রেঞ্জ("B4:B6")।মান ="সবজি_তালিকা" তাহলে
কল করুন ভেজিটেবল_লিস্ট
- এখানে যদি সেলের মান সবজি_তালিকা এর সাথে মিলে যায় টেক্সট, তারপর আমরা সবজি_তালিকা কল করব উদ্ভিজ্জ তালিকা তৈরি এবং দেখানোর ফাংশন৷
সুতরাং, আমাদের সম্পূর্ণ কোডটি এরকম হবে:
ধাপ 3: এখন ওয়ার্কশীটে যান এবং ড্রপ-ডাউন তালিকা থেকে যেকোনো বিভাগ নির্বাচন করুন
পদক্ষেপ 4: তারপর সংশ্লিষ্ট আইটেমগুলি ফুড কলামে পাওয়া যাবে
ধাপ 5: চূড়ান্ত আউটপুট এই মত হবে:
3. এক্সেল VBAতে একাধিক নির্ভরশীল ড্রপ-ডাউন তালিকা সাফ করা হচ্ছে
পূর্ববর্তী বিভাগে, আমরা দেখেছি কিভাবে আমরা এক্সেলে সম্পর্কিত মিলিত তালিকা পেতে পারি। কিন্তু কখনও কখনও কিছু অমিল নির্বাচন হতে পারে যা স্বয়ংক্রিয়ভাবে সরানো হবে না। আমরা এই ধরনের সমস্যা প্রতিরোধ করতে সূত্র দিতে পারি।
আরেকটি বিকল্প হল প্রথম ড্রপডাউনে নির্বাচন করার পর নির্ভরশীল সেলটি সাফ করার জন্য একটি ম্যাক্রো ব্যবহার করা। এটি অমিল নির্বাচন প্রতিরোধ করবে৷
ধাপ 1: পদ্ধতি 1 থেকে একই ধাপ অনুসরণ করে VBA কনসোল খুলুন (ধাপ 1 এবং ধাপ 2 ) তারপর নিম্নলিখিত কোড লিখুন
কোড:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 Then
If Target.Validation.Type = 3 Then
Application.EnableEvents = False
Target.Offset(0, 1).ClearContents
End If
End If
exitHandler:
Application.EnableEvents = True
Exit Sub
End Sub
ধাপ 2: এখন খাদ্য থেকে যেকোনো আইটেম নির্বাচন করুন কলাম এবং বিভাগ থেকে যেকোনো ভিন্ন বিভাগ নির্বাচন করার চেষ্টা করুন এবং দেখুন কি হয়
প্রথম
দ্বিতীয়
চূড়ান্ত আউটপুট
আরো পড়ুন: এক্সেলে ড্রপ-ডাউন তালিকা কীভাবে সরানো যায়
মনে রাখার মতো বিষয়গুলি৷
সাধারণ ত্রুটি | যখন তারা দেখায় |
---|---|
তালিকা মুছতে অক্ষম | ডেটা যাচাইকরণে, যদি অনুমতি দিন তালিকার সমান নয় এবং উত্সটি সঠিকভাবে নির্বাচিত না হলে ড্রপ-ডাউন তালিকাটি মুছে ফেলা যাবে না, অথবা আপনি তালিকাটি মুছে ফেলার জন্য VBA কোড ব্যবহার করুন৷ |
মান সমস্যা আপডেট করুন | সাধারণত, নির্ভরশীল ড্রপ-ডাউন তালিকায়, যদি কোনো অমিল মান থাকে, তাহলে তা স্বয়ংক্রিয়ভাবে আপডেট হবে না। মানটি স্বয়ংক্রিয়ভাবে আপডেট করতে আমরা হয় সূত্র বা VBA কোড (এই নিবন্ধে পদ্ধতি 3) ব্যবহার করতে পারি। |
উপসংহার
এটি একাধিক নির্ভরশীল ড্রপ-ডাউন তালিকা এক্সেল VBA তৈরি বা পরিচালনা করার কিছু উপায়। আমি তাদের নিজ নিজ উদাহরণ সহ সমস্ত পদ্ধতি দেখিয়েছি কিন্তু অন্যান্য অনেক পুনরাবৃত্তি হতে পারে। আমি ব্যবহৃত ফাংশনগুলির মৌলিক বিষয়েও আলোচনা করেছি। আপনার যদি এটি অর্জনের অন্য কোনো পদ্ধতি থাকে, তাহলে অনুগ্রহ করে আমাদের সাথে তা শেয়ার করুন।
আরও পড়া
- এক্সেলের একাধিক কলামে কীভাবে ড্রপ ডাউন তালিকা তৈরি করবেন (৩টি উপায়)
- এক্সেল ড্রপ ডাউন তালিকা নির্বাচনের উপর নির্ভর করে
- এক্সেলে ড্রপ-ডাউন তালিকা তৈরি করতে IF স্টেটমেন্ট কীভাবে ব্যবহার করবেন
- এক্সেলের অন্য একটি শীট থেকে একটি ড্রপ ডাউন তালিকা তৈরি করুন (২টি পদ্ধতি)
- এক্সেলে ড্রপ-ডাউন তালিকা কীভাবে সম্পাদনা করবেন (4টি মৌলিক পদ্ধতি)
- Excel এ ড্রপ ডাউন তালিকা সহ VLOOKUP