ড্রপডাউন তালিকাগুলি এক্সেল সম্পর্কিত বিভিন্ন কাজ সম্পাদন করার জন্য একটি খুব দরকারী বৈশিষ্ট্য। VBA বাস্তবায়ন করা হচ্ছে এক্সেলে যেকোনো অপারেশন চালানোর জন্য সবচেয়ে কার্যকর, দ্রুততম এবং নিরাপদ পদ্ধতি। এই নিবন্ধে, আমরা আপনাকে 2টি কার্যকর পদ্ধতি দেখাব কিভাবে ড্রপ ডাউন তালিকা থেকে মান নির্বাচন করতে হয় VBA ম্যাক্রো সহ Excel-এ .
ওয়ার্কবুক ডাউনলোড করুন
আপনি এখান থেকে বিনামূল্যে অনুশীলন এক্সেল ওয়ার্কবুক ডাউনলোড করতে পারেন।
Excel এ জেনেরিক তালিকা থেকে একটি ড্রপডাউন তালিকা তৈরি করা
কোডিং বিভাগে যাওয়ার আগে, চলুন একটি ড্রপডাউন তালিকা তৈরি করার একটি খুব সহজ উপায় শিখি। একটি সাধারণ তালিকা থেকে এক্সেলে। যাতে পরে আমরা যে ড্রপডাউন তালিকাটি তৈরি করেছি ব্যবহার করতে পারি এই নিবন্ধের উদাহরণ হিসাবে।
আমাদের এক্সেল ওয়ার্কশীটে থাকা জেনেরিক তালিকাটি নিম্নরূপ। আছেপুনরাবৃত্ত মান (যেমন, Apple সেল B7-এ এবং B9 ) তালিকায়।
আমরা দেখব কিভাবে মান সমন্বিত একটি ড্রপডাউন তালিকা তৈরি করা যায় (যেমন, আঙ্গুর, কমলা, আপেল, আম, আপেল ) জেনারিক তালিকা থেকে .
পদক্ষেপ:
- প্রথমে, যে কোনো ঘরে ক্লিক করুন (সেল D4 আমাদের ক্ষেত্রে) যেখানে আপনি ড্রপডাউন তালিকা সংরক্ষণ করতে চান।
- তারপর, ট্যাবে ক্লিক করুন ডেটা .
- এর পরে, ডেটা যাচাইকরণ নির্বাচন করুন ডেটা টুলস থেকে ফিতার গ্রুপ।
- একটি ডেটা যাচাইকরণ পপ-আপ বক্স আসবে। সেখান থেকে,
- তালিকা নির্বাচন করুন অনুমতি দিন-এ মানদণ্ড।
- উৎস-এ মানদণ্ড, পরিসীমা টেনে আনুন (B5:B9 আমাদের ক্ষেত্রে) যার ড্রপডাউন তালিকার মান রয়েছে।
- পরে, ঠিক আছে ক্লিক করুন .
নিচের ছবিটি দেখুন।
সেলে D4 , সেখানে একটি ড্রপডাউন তালিকা তৈরি করা হয়েছে৷ যা মানগুলি ধারণ করে (যেমন, আঙ্গুর, কমলা, আপেল, আম, আপেল ) উদ্ধার করা হয়েছে জেনেরিক তালিকা থেকে (পরিসীমা B5:B9 )।
Excel এ ড্রপ ডাউন তালিকা থেকে মান নির্বাচন করার জন্য VBA এর সাথে 2 পদ্ধতি
এই বিভাগে, আপনি শিখবেন কিভাবে একটি ড্রপডাউন তালিকা থেকে পুনরাবৃত্তিমূলক এবং অ-পুনরাবৃত্ত উভয় মান সহ একাধিক মান নির্বাচন করতে হয় এক্সেল এ VBA এর সাথে .
1. এক্সেলের ড্রপ ডাউন তালিকা থেকে একাধিক মান নির্বাচন করতে VBA এম্বেড করুন (পুনরাবৃত্ত মান সহ)
আমাদের ডেটাসেটে পুনরাবৃত্তিমূলক মান আছে। আপনি যদি চান যে আপনার ড্রপডাউন তালিকার মান দ্বিগুণ হোক বা না হোক সব মান ধরা যাক। , তারপর নিচের ধাপগুলো অনুসরণ করুন।
পদক্ষেপ:
- শুরুতে, Alt + F11 টিপুন আপনার কীবোর্ডে বা ট্যাবে যান ডেভেলপার -> ভিজ্যুয়াল বেসিক ভিজ্যুয়াল বেসিক এডিটর খুলতে .
- পরবর্তী, উপযুক্ত পত্রকের নামের উপর ডান-ক্লিক করুন এবং কোড দেখুন নির্বাচন করুন প্রদর্শিত বিকল্প তালিকা থেকে।
- তারপর, কপি করুন নিম্নলিখিত কোড এবং পেস্ট করুন এটি কোড উইন্ডোতে।
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValueA As String
Dim ValueB As String
On Error GoTo Exitsub
If Target.Address = "$D$4" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
ValueB = Target.Value
Application.Undo
ValueA = Target.Value
If ValueA = "" Then
Target.Value = ValueB
Else
Target.Value = ValueA & ", " & ValueB
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
- চালাবেন না এই কোড, সংরক্ষণ করুন এটা।
- এখন ওয়ার্কশীটে ফিরে যান সুদ. আপনি যদি তৈরি করা ড্রপডাউন তালিকাতে ক্লিক করেন সেল D4-এ , আপনি দেখতে পাবেন আপনি এখন ড্রপডাউন থেকে একাধিক মান নির্বাচন করতে পারেন (নিম্নলিখিত জিআইএফ দেখুন)।
আপনি উপরের জিআইএফ থেকে দেখতে পাচ্ছেন, আপনি এমনকি একটি নির্দিষ্ট মান একাধিকবার নির্বাচন করতে পারেন এর সাথেVBA কোড এই বিভাগে আমরা যে ম্যাক্রো কোড প্রদান করেছি তা ড্রপডাউন তালিকাকে সব ধরনের মান নির্বাচন করতে দেবে .
VBA কোড ব্যাখ্যা
Dim ValueA As String
Dim ValueB As String
পরিবর্তনশীল নাম সংজ্ঞায়িত করা।
On Error GoTo Exitsub
যদি কোনো ত্রুটি ঘটে, তাহলে Exitsub লেবেলে যান .
If Target.Address = "$D$4" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
সেল D4 হিসাবে গন্তব্য সেট করে যা তথ্য যাচাই ধারণ করে। যদি এমন কোনো কক্ষ না থাকে যাতে ডেটা যাচাইকরণ থাকে, তাহলে লেবেলে যান Exitsub .
Else: If Target.Value = "" Then GoTo Exitsub Else
যদি গন্তব্য হিসাবে কোনো কক্ষ না থাকে, তাহলে Exitsub লেবেলে যান৷ . অন্যথায়, নিম্নলিখিত লাইনগুলি চালান৷
৷Application.EnableEvents = False
অ্যাপ্লিকেশন ইভেন্টগুলি বন্ধ করা যাতে ওয়ার্কশীট_পরিবর্তন হয়৷ ম্যাক্রো ফায়ারিং থেকে প্রতিরোধ করা যেতে পারে; অন্যথায়, এটি একটি সম্ভাব্য অসীম লুপ সৃষ্টি করতে পারে৷
ValueB = Target.Value
ValueB সংজ্ঞায়িত করা পরিবর্তিত ঘরের নতুন মান হতে হবে।
Application.Undo
পরিবর্তিত কক্ষটি পূর্বাবস্থায় ফেরাতে৷
৷ValueA = Target.Value
পরিবর্তনটি পূর্বাবস্থায় ফিরিয়ে আনার মাধ্যমে, আমরা এখন ValueA সংজ্ঞায়িত করতে পারি পরিবর্তিত ঘরের পুরানো মান হতে হবে।
If ValueA = "" Then
Target.Value = ValueB
যদি পুরানো মান ফাঁকা থাকে, তাহলে নতুন মানটিকে গন্তব্য হিসাবে সংরক্ষণ করুন।
Else
Target.Value = ValueA & ", " & ValueB
End If
End If
End If
অন্যথায়, একটি কমা (,) দিয়ে পুরানো এবং নতুন উভয় মানই গন্তব্য মান সেট করুন ) যদি সব বন্ধ করা হচ্ছে বিবৃতি।
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
অ্যাপ্লিকেশান ইভেন্টগুলি চালু করা।
আরো পড়ুন: একাধিক নির্বাচন সহ Excel এ ড্রপ ডাউন তালিকা কীভাবে তৈরি করবেন
অনুরূপ পড়া:
- এক্সেলের অন্য শীট থেকে কীভাবে একটি ড্রপ ডাউন তালিকা তৈরি করবেন (2 পদ্ধতি)
- এক্সেলে একটি অনুসন্ধানযোগ্য ড্রপ ডাউন তালিকা তৈরি করুন (2 পদ্ধতি)
- এক্সেল ড্রপ ডাউন তালিকা কাজ করছে না (৮টি সমস্যা এবং সমাধান)
- টেবিল থেকে এক্সেল ড্রপ ডাউন তালিকা তৈরি করুন (৫টি উদাহরণ)
- এক্সেল এ স্বয়ংক্রিয় আপডেট ড্রপ ডাউন তালিকা (3 উপায়)
2. ড্রপ ডাউন তালিকা থেকে একাধিক মান নির্বাচন করতে VBA ম্যাক্রো প্রয়োগ করুন (পুনরাবৃত্ত মান ছাড়া)
আমাদের ডেটাসেটে পুনরাবৃত্তিমূলক মান আছে। আপনি যদি চান যে আপনার ড্রপডাউন তালিকা পুনরাবৃত্ত মান ব্যতীত সমস্ত মান ধরুক , তারপর নিচের ধাপগুলো অনুসরণ করুন।
পদক্ষেপ:
- আগে দেখানো হয়েছে, ভিজ্যুয়াল বেসিক এডিটর খুলুন ডেভেলপার থেকে ট্যাব।
- তারপর, কোড উইন্ডোতে যান কোড দেখুন থেকে ডান-ক্লিক করে বিকল্পটি উপস্থিত হয়েছে ওয়ার্কশীট আগ্রহের।
- তারপর, কপি করুন নিম্নলিখিত কোড এবং পেস্ট করুন এটি নির্দিষ্ট ওয়ার্কশীটের কোড উইন্ডোতে।
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValueA As String
Dim ValueB As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Target.Address = "$D$4" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
ValueB = Target.Value
Application.Undo
ValueA = Target.Value
If ValueA = "" Then
Target.Value = ValueB
Else
If InStr(1, ValueA, ValueB) = 0 Then
Target.Value = ValueA & ", " & ValueB
Else:
Target.Value = ValueA
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
- চালাবেন না এই কোড, সংরক্ষণ করুন এটা।
- এখন ওয়ার্কশীটে ফিরে যান সুদ. আপনি যদি তৈরি করা ড্রপডাউন তালিকাতে ক্লিক করেন সেল D4-এ , আপনি দেখতে পাবেন আপনি এখন ড্রপডাউন থেকে একাধিক মান নির্বাচন করতে পারেন (নিম্নলিখিত জিআইএফ দেখুন)।
আপনি উপরের gif থেকে দেখতে পাচ্ছেন, আপনি একটি নির্দিষ্ট মান একাধিকবার নির্বাচন করতে পারবেন না এই VBA দিয়ে কোড এই বিভাগে আমরা যে ম্যাক্রো কোড প্রদান করেছি তা ড্রপডাউন তালিকাকে কোনো পুনরাবৃত্তিমূলক মান ছাড়াই মান নির্বাচন করতে দেবে .
VBA কোড ব্যাখ্যা
Dim ValueA As String
Dim ValueB As String
পরিবর্তনশীল নাম সংজ্ঞায়িত করা।
Application.EnableEvents = True
অ্যাপ্লিকেশান ইভেন্টগুলি চালু করা।
On Error GoTo Exitsub
যদি কোনো ত্রুটি ঘটে, তাহলে Exitsub লেবেলে যান .
If Target.Address = "$D$4" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
সেল D4 হিসাবে গন্তব্য সেট করে যা তথ্য যাচাই ধারণ করে। যদি এমন কোনো কক্ষ না থাকে যাতে ডেটা যাচাইকরণ থাকে, তাহলে লেবেলে যান Exitsub .
Else: If Target.Value = "" Then GoTo Exitsub Else
যদি গন্তব্য হিসাবে কোনো কক্ষ না থাকে, তাহলে Exitsub লেবেলে যান৷ . অন্যথায়, নিম্নলিখিত লাইনগুলি চালান৷
৷Application.EnableEvents = False
অ্যাপ্লিকেশন ইভেন্টগুলি বন্ধ করা যাতে ওয়ার্কশীট_পরিবর্তন হয়৷ ম্যাক্রোকে ফায়ারিং থেকে প্রতিরোধ করা যেতে পারে যা সম্ভাব্য অসীম লুপের কারণ হতে পারে।
ValueB = Target.Value
ValueB সংজ্ঞায়িত করা পরিবর্তিত ঘরের নতুন মান হতে হবে।
Application.Undo
পরিবর্তিত কক্ষটি পূর্বাবস্থায় ফেরাতে৷
৷ValueA = Target.Value
পরিবর্তনটি পূর্বাবস্থায় ফিরিয়ে আনার মাধ্যমে, আমরা এখন ValueA সংজ্ঞায়িত করতে পারি পরিবর্তিত ঘরের পুরানো মান হতে হবে।
If ValueA = "" Then
Target.Value = ValueB
যদি পুরানো মান ফাঁকা থাকে, তাহলে নতুন মানটিকে গন্তব্য হিসাবে সংরক্ষণ করুন।
Else
If InStr(1, ValueA, ValueB) = 0 Then
Target.Value = ValueA & ", " & ValueB
InStr ফাংশন একটি স্ট্রিং এ একটি সাবস্ট্রিং এর প্রথম উপস্থিতির অবস্থান ফেরত দেয়। যদি আউটপুট 0 হয় তারপরে একটি কমা (,) দিয়ে পুরানো এবং নতুন উভয় মানই গন্তব্য মান সেট করুন )।
Else: Target.Value = ValueA
End If
End If
End If
End If
অন্যথায়, গন্তব্য হিসাবে পুরানো মান সেট করুন। যদি সব বন্ধ করা হচ্ছে বিবৃতি।
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
অ্যাপ্লিকেশান ইভেন্টগুলি চালু করা।
আরো পড়ুন: এক্সেল ড্রপ ডাউন তালিকা নির্বাচনের উপর নির্ভর করে
উপসংহার
উপসংহারে, এই নিবন্ধটি আপনাকে কীভাবে ড্রপ ডাউন তালিকা থেকে মান নির্বাচন করতে হয় তার 2টি কার্যকর পদ্ধতি দেখিয়েছে VBA ম্যাক্রো সহ Excel-এ . আমি আশা করি এই নিবন্ধটি আপনার জন্য খুব উপকারী হয়েছে. বিষয় সম্পর্কিত যেকোনো প্রশ্ন নির্দ্বিধায় করুন।
সম্পর্কিত প্রবন্ধ
- এক্সেলের সূত্রের উপর ভিত্তি করে কীভাবে একটি ড্রপ-ডাউন তালিকা তৈরি করবেন (4 উপায়)
- Excel এ শর্তসাপেক্ষ ড্রপ ডাউন তালিকা (তৈরি করুন, সাজান এবং ব্যবহার করুন)
- এক্সেলে ড্রপ-ডাউন তালিকা তৈরি করতে IF স্টেটমেন্ট কীভাবে ব্যবহার করবেন
- এক্সেলে একটি ড্রপ ডাউন তালিকা সহ একটি সেল মান লিঙ্ক করুন (5 উপায়)
- এক্সেল এ ড্রপ-ডাউন তালিকা কিভাবে সরাতে হয়