এই আর্টিকেলে আমরা শিখব কীভাবে একটি এক্সেল ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট তৈরি করব যেটি একাধিক সিলেকশন সাপোর্ট করে। ডেটা ভ্যালিডেশন ব্যবহার করার সময় এটি শুধু লিস্ট থেকে একটি আইটেম সিলেক্ট করার অনুমতি দেয়। কিন্তু, যদি আমরা ডেটা ভ্যালিডেশন লিস্টের ড্রপ-ডাউন মেনু থেকে একাধিক আইটেম সিলেক্ট করতে চাই? তাই, এই টিউটোরিয়ালে আমরা কিছু ম্যাক্রো ব্যবহার করব ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্টের একাধিক সিলেকশন লিমিটেশন সমাধান করার জন্য।
প্র্যাকটিস ওয়ার্কবুকটি এখান থেকে ডাউনলোড করতে পারেন।
এক্সেলে ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট একাধিক সিলেকশনসহ তৈরির ৩টি উদাহরণ
VBA ম্যাক্রো প্রয়োগ করে ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট একাধিক সিলেকশনসহ তৈরি করার প্রসেস কিছুটা জটিল। তাই, আপনাকে ভালো বুঝাতে আমরা ৩টি আলাদা উদাহরণ দেখাব ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট থেকে একাধিক সিলেকশনের।
১. একক সেলে একাধিক সিলেকশনের জন্য এক্সেল ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট তৈরি
প্রথমে, আমাদের নিচের ডেটাসেট রয়েছে, যেটি ৪টি দেশের নাম ধারণ করে। আমরা এই নামগুলো থেকে ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট একাধিক সিলেকশনসহ তৈরি করতে চাই। সাধারণত, ডেটা ভ্যালিডেশন শুধু একটি দেশের নাম এক সেলে সিলেক্ট করার অনুমতি দেয়। কিন্তু, আমরা একাধিক দেশের নাম ডেটা ভ্যালিডেশন লিস্ট থেকে একক সেলে ইনপুট করতে চাই।

তাহলে, এই অ্যাকশন করার ধাপগুলো দেখি।
STEPS:
- প্রথমে, সেল রেঞ্জ (D4:D8) সিলেক্ট করুন। নেম রেঞ্জ সেট করুন 'dv_list_0'।

- দ্বিতীয়ত, সেল রেঞ্জ (B5:B8) সিলেক্ট করুন এবং নেম রেঞ্জ সেট করুন 'Country_Range'।

- তৃতীয়ত, Data > Data Tools > Data Validation > Data Validation-এ যান।

- উপরের অ্যাকশন একটি নতুন ডায়ালগ বক্স খুলবে নামক 'Data Validation'।
- পরবর্তীতে, Allow থেকে List অপশন সিলেক্ট করুন। Source টেক্সট ফিল্ডে নিচের ফর্মুলাটি লিখুন:
=dv_list_0- OK চাপুন।

- তাহলে, সিলেক্ট করা সেলগুলোর ডান পাশে একটি ড্রপ-ডাউন আইকন আসবে।

- তারপর, এক্টিভ শীটের শীট নেমে রাইট-ক্লিক করুন। 'View Code' অপশন সিলেক্ট করুন।

- উপরের কমান্ড একটি ব্ল্যাংক VBA মডিউল খুলবে। সেটিতে নিচের কোডটি ইনসার্ট করুন:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Value_Old As String
Dim Value_New As String
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Not Intersect(Target, ActiveSheet.Range("Country_Range")) Is Nothing Then
Application.EnableEvents = False
Value_New = Target.Value
On Error Resume Next
Application.Undo
On Error GoTo 0
Value_Old = Target.Value
If InStr(Value_Old, Value_New) Then
If InStr(Value_Old, ",") Then
If InStr(Value_Old, ", " & Value_New) Then
Target.Value = Replace(Value_Old, ", " & Value_New, "")
Else
Target.Value = Replace(Value_Old, Value_New & ", ", "")
End If
Else
Target.Value = ""
End If
Else
If Value_Old = "" Then
Target.Value = Value_New
Else
If Value_New = "" Then
Target.Value = ""
Else
If InStr(Target.Value, Value_New) = 0 Then
Target.Value = Value_Old & ", " & Value_New
End If
End If
End If
End If
Application.EnableEvents = True
Else
Exit Sub
End If
End Sub
- Run বাটনে ক্লিক করুন বা F5 কী চাপুন কোড রান করতে।

- এখন, ম্যাক্রোর একটি নাম দিন এবং Run চাপুন। এই উদাহরণের Macro-র নাম VBA।

- এরপর, B5 সেলের ড্রপ-ডাউন মেনু থেকে USA সিলেক্ট করুন। এটা সেল B5-এ দেশের নাম USA ইনপুট করবে।

- শেষে, Canada এবং Mexico ড্রপ-ডাউন থেকে সিলেক্ট করুন। আমরা দেখতে পাচ্ছি ড্রপ-ডাউন মেনু থেকে সব ভ্যালু এক সেলে সিলেক্ট হয়েছে।

আরও পড়ুন: ডেটা ভ্যালিডেশনের জন্য এক্সেল ড্রপ ডাউন লিস্ট তৈরির ৮ উপায়
২. এক্সেল ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট তৈরি করে একাধিক সিলেকশন সন্নিহিত কলামে ইনসার্ট
দ্বিতীয় উদাহরণে, আমরা সন্নিহিত কলামে একাধিক সিলেকশনের জন্য ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট তৈরি করব। আপনি যদি ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট থেকে যেকোনো আইটেম সিলেক্ট করেন, সেটি অটোমেটিক্যালি সন্নিহিত কলামে সিলেক্ট হয়ে যাবে। এই উদাহরণ বোঝাতে আমরা আগের ডেটাসেট চালিয়ে যাচ্ছি।

তাহলে, এই উদাহরণ সমাধানের ধাপগুলো দেখি।
STEPS:
- প্রথমে, সেল D5 সিলেক্ট করুন। আগের মেথডের মতো ডেটা ভ্যালিডেশন ড্রপ-ডাউন তৈরি করুন। ভ্যালিডেশনের জন্য সোর্স ভ্যালু হিসেবে রেঞ্জ (B5:B8) ব্যবহার করুন।

- পরবর্তীতে, এক্টিভ শীটের নামে রাইট-ক্লিক করুন এবং 'View Code' অপশন সিলেক্ট করুন।

- একটি নতুন ব্ল্যাংক VBA মডিউল আসবে। সেটিতে নিচের কোডটি লিখুন:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler
Dim DV_Range As Range
Dim Col_i As Integer
If Target.Count > 1 Then GoTo exitHandler
On Error Resume Next
Set DV_Range = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If DV_Range Is Nothing Then GoTo exitHandler
If Intersect(Target, DV_Range) Is Nothing Then
Else
Application.EnableEvents = False
If Target.Column = 4 Then
If Target.Value = "" Then GoTo exitHandler
If Target.Validation.Value = True Then
Col_i = Cells(Target.Row, Columns.Count).End(xlToLeft).Column + 1
Cells(Target.Row, Col_i).Value = Target.Value
Else
MsgBox "Invalid entry"
Target.Activate
End If
End If
End If
exitHandler:
Application.EnableEvents = True
End Sub
- F5 কী চাপুন বা Run আইকনে ক্লিক করুন কোড রান করতে।

- তারপর, একটি নতুন ডায়ালগ বক্স আসবে নামক Macros। VBA1 নামে একটি ম্যাক্রো তৈরি করুন এবং Run চাপুন।

- এরপর, সেল D5-এর ড্রপ-ডাউন আইকন থেকে দেশের নাম USA সিলেক্ট করুন।

- উপরের কমান্ড দেশের নাম USA সেল E5-এ ইনপুট করবে যা সন্নিহিত কলাম E-তে আছে।

- শেষে, Canada এবং Mexico সিলেক্ট করুন। আমরা দেখতে পাচ্ছি সিলেক্ট করা ভ্যালুগুলো যথাক্রমে সন্নিহিত কলামে রাখা হয়েছে।

আরও পড়ুন: এক্সেল VBA-তে ডেটা ভ্যালিডেশন লিস্টে ডিফল্ট ভ্যালু (ম্যাক্রো ও ইউজারফর্ম)
সদৃশ পড়াশোনা:
- অটোকমপ্লিট ডেটা ভ্যালিডেশন ড্রপ ডাউন লিস্ট এক্সেলে (২ মেথড)
- এক্সেলে টেবিল থেকে ডেটা ভ্যালিডেশন লিস্ট তৈরির ৩ পদ্ধতি
- এক সেলে একাধিক ডেটা ভ্যালিডেশন এক্সেলে প্রয়োগ (৩ উদাহরণ)
- এক্সেলে ডেটা ভ্যালিডেশন লিস্ট থেকে ব্ল্যাঙ্ক রিমুভ (৫ মেথড)
- এক্সেল ডেটা ভ্যালিডেশন অ্যালফানিউমেরিক অনলি (কাস্টম ফর্মুলা ব্যবহার করে)
৩. এক্সেলে ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট দিয়ে আলাদা সারিতে একাধিক সিলেকশন
তৃতীয় উদাহরণ দ্বিতীয়টির সাথে খুব মিলিত। দ্বিতীয় উদাহরণে একাধিক সিলেকশন হয়েছিল সন্নিহিত কলামে, যেখানে এই উদাহরণে একাধিক সিলেকশন হবে আলাদা সারিতে। উদাহরণস্বরূপ, এই উদাহরণে ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট একাধিক সিলেকশনসহ তৈরি করার জন্য আমরা আগের উদাহরণগুলোতে ব্যবহৃত ডেটাসেট চালিয়ে যাচ্ছি।

তাহলে, এই অ্যাকশন করার ধাপগুলো যাই।
STEPS:
- শুরুরে, সেল D5 সিলেক্ট করুন। আগের প্রসিডিউরের মতো ডেটা ভ্যালিডেশন ড্রপ-ডাউন তৈরি করুন। সোর্স ভ্যালু হিসেবে রেঞ্জ (B5:B8) দিয়ে ভ্যালিডেট করুন।

- পরবর্তীতে, রাইট-ক্লিক করুন এক্টিভ শীটে। উপলব্ধ অপশন থেকে 'View Code' সিলেক্ট করুন।

- উপরের অ্যাকশন একটি ব্ল্যাংক VBA মডিউল খুলবে। সেটিতে নিচের কোডটি ইনপুট করুন:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler
Dim DV_Range As Range
Dim Row_1 As Long
Dim Col_1 As Long
Col_1 = Target.Column
If Target.Count > 1 Then GoTo exitHandler
On Error Resume Next
Set DV_Range = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If DV_Range Is Nothing Then GoTo exitHandler
If Intersect(Target, DV_Range) Is Nothing Then
Else
If Target.Value = "" Then GoTo exitHandler
Application.EnableEvents = False
Select Case Target.Column
Case 4
If Target.Offset(0, 1).Value = "" Then
Row_1 = Target.Row
Else
Row_1 = Cells(Rows.Count, Col_1 + 1).End(xlUp).Row + 1
End If
Cells(Row_1, Col_1 + 1).Value = Target.Value
Target.ClearContents
End Select
End If
exitHandler:
Application.EnableEvents = True
End Sub
- কোড রান করতে Run আইকনে ক্লিক করুন বা F5 কী চাপুন।

- তারপর, একটি নতুন ডায়ালগ বক্স আসবে নামক Macros। ম্যাক্রো নাম দিন VBA2 এবং Run চাপুন।

- এরপর, সেল D5-এর ড্রপ-ডাউন লিস্ট থেকে অপশন USA সিলেক্ট করুন।

- তাহলে, আমরা দেখতে পাচ্ছি নাম USA একই সারি কিন্তু সন্নিহিত কলামে থাকছে।

- শেষে, Canada, Mexico, এবং England একটা একটা করে সিলেক্ট করুন। আমরা দেখব সিলেক্ট করা ভ্যালুগুলো একই কলামে কিন্তু আলাদা সারিতে একটা একটা করে থাকছে।

আরও পড়ুন: ফিল্টারসহ এক্সেল ডেটা ভ্যালিডেশন ড্রপ ডাউন লিস্ট (২ উদাহরণ)
উপসংহার
অতএব, এই টিউটোরিয়াল আপনাকে একটি ওভারভিউ দেয় ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট একাধিক সিলেকশনসহ তৈরির। আপনার স্কিল টেস্ট করতে এই আর্টিকেলের সাথে আসা প্র্যাকটিস ওয়ার্কবুক ডাউনলোড করুন। আপনার যেকোনো প্রশ্ন থাকলে নিচের বক্সে কমেন্ট দিন। আমাদের টিম যত্ন সহকারে যতক্ষণ সম্ভব আপনাকে রিপ্লাই দিতে চেষ্টা করবে। ভবিষ্যতে, আরও ইনোভেটিভ Microsoft Excel সমাধানের জন্য আমাদের সাথে থাকুন।
সম্পর্কিত আর্টিকেলসমূহ
- এক্সেলে ডেটা ভ্যালিডেশন ফর্মুলাতে IF স্টেটমেন্ট ব্যবহার (৬ উপায়)
- এক্সেলে কালারসহ ডেটা ভ্যালিডেশন ব্যবহার (৪ উপায়)
- অন্য শীট থেকে ডেটা ভ্যালিডেশন লিস্ট ব্যবহার (৬ মেথড)
- VBA-তে এক্সেলে নেমড রেঞ্জ ডেটা ভ্যালিডেশন লিস্টের জন্য ব্যবহার
- [Fixed] কপি-পেস্টে এক্সেল ডেটা ভ্যালিডেশন কাজ করছে না (সমাধানসহ)