কম্পিউটার টিউটোরিয়াল

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করার ২টি প্রমাণিত পদ্ধতি

ড্রপডাউন লিস্ট এক্সেল-রelated বিভিন্ন কাজ করার জন্য খুব উপকারী ফিচার। VBA ইমপ্লিমেন্ট করা এক্সেলে যেকোনো অপারেশন চালানোর সবচেয়ে ইফেক্টিভ, দ্রুত এবং নিরাপদ পদ্ধতি। এই আর্টিকেলে আমরা আপনাকে VBA ম্যাক্রো দিয়ে এক্সেলে ড্রপ ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করার ২টি ইফেক্টিভ মেথড দেখাব।

ওয়ার্কবুক ডাউনলোড করুন

আপনি এখান থেকে ফ্রি প্র্যাকটিস এক্সেল ওয়ার্কবুক ডাউনলোড করতে পারেন।

এক্সেলে জেনেরিক লিস্ট থেকে ড্রপডাউন লিস্ট তৈরি

কোডিং সেকশনে যাওয়ার আগে, এক্সেলে জেনেরিক লিস্ট থেকে ড্রপডাউন লিস্ট তৈরি করার একটি খুব সহজ উপায় শিখি। যাতে পরে আমরা এই আর্টিকেলের উদাহরণ হিসেবে আমরা যা ড্রপডাউন লিস্ট তৈরি করেছি সেটি ব্যবহার করতে পারি।

নিচে আমাদের এক্সেল ওয়ার্কশীটে থাকা জেনেরিক লিস্টটি দেওয়া আছে। লিস্টে রিপিটিভ ভ্যালু রয়েছে (যেমন Cell B7 এবং B9-এ Apple)।

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করার ২টি প্রমাণিত পদ্ধতি

আমরা দেখব কীভাবে জেনেরিক লিস্ট থেকে ভ্যালুগুলো নিয়ে (যেমন Grapes, Orange, Apple, Mango, Apple) একটি ড্রপডাউন লিস্ট তৈরি করা যায়।

ধাপসমূহ:

  • প্রথমে, ড্রপডাউন লিস্ট স্টোর করার জন্য যেকোনো সেলে ক্লিক করুন (আমাদের কেসে Cell D4)।
  • তারপর Data ট্যাবে ক্লিক করুন।
  • उसके बाद, রিবনের Data Tools গ্রুপ থেকে Data Validation সিলেক্ট করুন।

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করার ২টি প্রমাণিত পদ্ধতি

  • একটি Data Validation পপ-আপ বক্স আসবে। সেখান থেকে,
    • Allow ক্রাইটেরিয়ায় List সিলেক্ট করুন।
    • Source ক্রাইটেরিয়ায়, ড্রপডাউন লিস্টের ভ্যালুهای থাকা রেঞ্জটি ড্র্যাগ করুন (আমাদের কেসে B5:B9)।

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করার ২টি প্রমাণিত পদ্ধতি

  • পরিবর্তে OK চাপুন।

নিচের চিত্রটি দেখুন।

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করার ২টি প্রমাণিত পদ্ধতি

Cell D4-এ একটি ড্রপডাউন লিস্ট তৈরি হয়েছে যেটি ভ্যালুগুলো ধারণ করে (যেমন Grapes, Orange, Apple, Mango, Apple) জেনেরিক লিস্ট থেকে (রেঞ্জ B5:B9) রিট্রিভ করা।

VBA-তে ড্রপ ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করার ২টি মেথড

এই সেকশনে আপনি শিখবেন কীভাবে VBA দিয়ে এক্সেলে রিপিটিভ এবং নন-রিপিটিভ ভ্যালু দুটোই ড্রপডাউন লিস্ট থেকে মাল্টিপল সিলেক্ট করা যায়।

১. রিপিটিভ ভ্যালুসহ ড্রপ ডাউন লিস্ট থেকে মাল্টিপল ভ্যালু সিলেক্ট করতে VBA এম্বেড করুন

আমাদের ডেটাসেটে রিপিটিভ ভ্যালু রয়েছে। যদি আপনি চান আপনার ড্রপডাউন লিস্ট সব ভ্যালু ধরতে পারে বা ভ্যালু ডাবল হোক না হোক, তবে নিচের ধাপগুলো অনুসরণ করুন।

ধাপসমূহ:

  • শुरुआতে, আপনার কিবোর্ডে Alt + F11 চাপুন বা Developer -> Visual Basic ট্যাবে যান Visual Basic Editor খোলার জন্য।

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করার ২টি প্রমাণিত পদ্ধতি

  • এরপর, উপযুক্ত শীটের নামে রাইট-ক্লিক করুন এবং আসা অপশন লিস্ট থেকে View Code সিলেক্ট করুন।

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করার ২টি প্রমাণিত পদ্ধতি

  • তারপর, নিচের কোডটি কপি করে কোড উইন্ডোতে পেস্ট করুন।
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

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করার ২টি প্রমাণিত পদ্ধতি

  • এই কোডটি রান করবেন না, সেভ করুন।
  • এখন রুচির ওয়ার্কশীতে ফিরে যান। যদি Cell D4-এ তৈরি ড্রপডাউন লিস্টে ক্লিক করুন, তবে আপনি দেখবেন আপনি এখন ড্রপডাউন থেকে মাল্টিপল ভ্যালু সিলেক্ট করতে পারছেন (নিচের GIF-টি দেখুন)।

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করার ২টি প্রমাণিত পদ্ধতি

উপরের GIF-এ দেখা যাচ্ছে, এই 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

অ্যাপ্লিকেশন ইভেন্টস বন্ধ করা যাতে Worksheet_Change ম্যাক্রো ফায়ার করা থেকে रोका যায়; অন্যথায় এটা ইনফাইনিট লুপ সৃষ্টি করতে পারে।

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

অন্যথায়, পুরনো এবং নতুন দুটি ভ্যালুই ডেস্টিনেশন ভ্যালু হিসেবে সেট করুন কমা (,) দিয়ে ক্যাটেনেট করে। সব If স্টেটমেন্ট বন্ধ করুন।

Application.EnableEvents = True 
Exitsub: 
Application.EnableEvents = True

আইpplication ইভেন্টস আবার অন করতে হবে।

আরও পড়ুন: এক্সেলে একাধিক সিলেকশনসহ ড্রপ ডাউন লিস্ট তৈরি কীভাবে করবেন

সদৃশ পড়াশোনা:

  • এক্সেলে অন্য শীট থেকে ড্রপ ডাউন লিস্ট তৈরি (২ পদ্ধতি)
  • সার্চেবল ড্রপ ডাউন লিস্ট এক্সেলে তৈরি (২ পদ্ধতি)
  • এক্সেল ড্রপ ডাউন লিস্ট কাজ করছে না (৮ সমস্যা ও সমাধান)
  • টেবিল থেকে এক্সেল ড্রপ ডাউন লিস্ট তৈরি (৫ উদাহরণ)
  • এক্সেলে অটো আপডেট ড্রপ ডাউন লিস্ট (৩ উপায়)

২. রিপিটিভ ভ্যালু ছাড়া ড্রপ ডাউন লিস্ট থেকে মাল্টিপল ভ্যালু সিলেক্ট করতে VBA ম্যাক্রো প্রয়োগ করুন

আমাদের ডেটাসেটে রিপিটিভ ভ্যালু রয়েছে। যদি আপনি চান আপনার ড্রপডাউন লিস্ট রিপিটিভ ভ্যালু ছাড়া সব ভ্যালু ধরতে পারে, তবে নিচের ধাপগুলো অনুসরণ করুন।

ধাপসমূহ:

  • আগে দেখানো মতো, Developer ট্যাব থেকে Visual Basic Editor খুলুন।
  • তারপর, রাইট-ক্লিক করলে আসা View Code অপশন থেকে কোড উইন্ডো-তে যান রুচির ওয়ার্কশীট-এর।
  • তারপর, নিচের কোডটি কপি করে নির্দিষ্ট ওয়ার্কশীটের কোড উইন্ডোতে পেস্ট করুন।
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

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করার ২টি প্রমাণিত পদ্ধতি

  • এই কোডটি রান করবেন না, সেভ করুন।
  • এখন রুচির ওয়ার্কশীটে ফিরে যান। যদি Cell D4-এ তৈরি ড্রপডাউন লিস্টে ক্লিক করুন, তবে আপনি দেখবেন আপনি এখন ড্রপডাউন থেকে মাল্টিপল ভ্যালু সিলেক্ট করতে পারছেন (নিচের GIF-টি দেখুন)।

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করার ২টি প্রমাণিত পদ্ধতি

উপরের 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

অ্যাপ্লিকেশন ইভেন্টস বন্ধ করা যাতে Worksheet_Change ম্যাক্রো ফায়ার করা থেকে रोका যায় যা ইনফাইনিট লুপ সৃষ্টি করতে পারে।

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

অন্যথায়, পুরনো ভ্যালুটিকে ডেস্টিনেশন হিসেবে সেট করুন। সব If স্টেটমেন্ট বন্ধ করুন।

Application.EnableEvents = True 
Exitsub: 
Application.EnableEvents = True

অ্যাপ্লিকেশন ইভেন্টস আবার অন করা।

আরও পড়ুন: সিলেকশনের ওপর নির্ভরশীল এক্সেল ড্রপ ডাউন লিস্ট

উপসংহার

উপসংহারে, এই আর্টিকেলটি আপনাকে ২টি ইফেক্টিভ মেথড দেখিয়েছে কীভাবে VBA ম্যাক্রো দিয়ে এক্সেলে ড্রপ ডাউন লিস্ট থেকে ভ্যালু সিলেক্ট করতে হয়। আশা করি এই আর্টিকেলটি আপনার জন্য খুব উপকারী হয়েছে। টপিকটি নিয়ে যেকোনো প্রশ্ন থাকলে বিনামূল্যে জিজ্ঞাসা করুন।

সম্পর্কিত আর্টিকেলসমূহ

  • ফর্মুলা বেসড ড্রপ-ডাউন লিস্ট এক্সেলে তৈরির ৪ উপায়
  • কন্ডিশনাল ড্রপ ডাউন লিস্ট এক্সেলে (তৈরি, সর্ট ও ব্যবহার)
  • IF স্টেটমেন্ট ব্যবহার করে এক্সেলে ড্রপ-ডাউন লিস্ট তৈরির উপায়
  • সেল ভ্যালুর সাথে ড্রপ ডাউন লিস্ট লিংক করার ৫ উপায় এক্সেলে
  • এক্সেলে ড্রপ-ডাউন লিস্ট রিমুভ করার উপায়

  1. এক্সেল ড্রপ-ডাউন লিস্টে ব্ল্যাঙ্ক অপশন যোগ করুন – ২টি সহজ পদ্ধতি

  2. এক্সেলে অটোকমপ্লিট ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট তৈরি করুন - ২টি কার্যকর পদ্ধতি

  3. এক্সেলে ডাইনামিক ডিপেন্ডেন্ট ড্রপ-ডাউন লিস্ট তৈরি করুন - ২টি প্রমাণিত পদ্ধতি

  4. ড্রপ-ডাউন লিস্ট সহ এক্সেল ডেটা এন্ট্রি ফর্ম তৈরি – দুটি সহজ পদ্ধতি