কম্পিউটার

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

এই নিবন্ধে, আমি আপনাকে দেখাব কিভাবে আপনি ড্রপ ডাউন তালিকা থেকে ডুপ্লিকেট মানগুলি সরাতে পারেন VBA এর সাহায্যে এক্সেলের একটি ওয়ার্কশীটের এবং শুধুমাত্র অনন্য মান রাখুন। আপনি অনন্য মানগুলি বের করতে শিখবেন যা অন্তত একবার এবং ঠিক একবার উভয়ই প্রদর্শিত হয়।

এক্সেল VBA (দ্রুত ভিউ)

সহ ড্রপ ডাউন তালিকায় অনন্য মান
Sub Drop_Down_List_Unique_Values_At_Least_Once()

List_Location = "B3"

Data = Range(List_Location).Validation.Formula1
Data = Split(Data, ",")

Range(List_Location).Validation.Delete

Unique_Data = ""

Count = 0

For i = LBound(Data) To UBound(Data)
    Unique_Values = Split(Unique_Data, ",")
    For j = LBound(Unique_Values) To UBound(Unique_Values)
        If Data(i) = Unique_Values(j) Then
            Count = 1
            Exit For
        End If
    Next j
    If Count = 0 Then
        If Unique_Data = "" Then
            Unique_Data = Unique_Data + Data(i)
        Else
            Unique_Data = Unique_Data + "," + Data(i)
        End If
    End If
    Count = 0
Next i

Range(List_Location).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:=Unique_Data

End Sub

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

এক্সেল ভিবিএ-এর সাহায্যে ড্রপ ডাউন তালিকায় কীভাবে অনন্য মান রাখবেন

এখানে আমরা B3 কক্ষে একটি ড্রপ-ডাউন তালিকা পেয়েছি একটি এক্সেল ওয়ার্কশীট যাতে কিছু দেশের নাম থাকে।

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

কিন্তু আপনি দেখতে পাচ্ছেন, তালিকায় কিছু নাম বারবার এসেছে। যেমন জার্মানি তিনবার পুনরাবৃত্তি হয়েছে, এবং ইতালিতে দুবার পুনরাবৃত্তি হয়েছে।

আমাদের উদ্দেশ্য হল ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলি সরিয়ে দেওয়া এবং শুধুমাত্র অনন্য মানগুলি রাখা৷

1. একটি ড্রপ ডাউন তালিকায় অনন্য মান রাখতে একটি ম্যাক্রো তৈরি করা যা অন্তত একবার প্রদর্শিত হয়

প্রথমত, আমরা একটি ম্যাক্রো তৈরি করব ড্রপ-ডাউন তালিকায় অন্তত একবার প্রদর্শিত অনন্য মানগুলি রাখতে।

উদাহরণস্বরূপ, উপরে উল্লিখিত তালিকার জন্য, ম্যাক্রো-এর আউটপুট হবে জার্মানি, ইতালি, ফ্রান্স, ইংল্যান্ড .

VBA এই উদ্দেশ্যে কোড হবে:

⧭ VBA কোড:

Sub Drop_Down_List_Unique_Values_At_Least_Once()

List_Location = "B3"

Data = Range(List_Location).Validation.Formula1
Data = Split(Data, ",")

Range(List_Location).Validation.Delete

Unique_Data = ""

Count = 0

For i = LBound(Data) To UBound(Data)
    Unique_Values = Split(Unique_Data, ",")
    For j = LBound(Unique_Values) To UBound(Unique_Values)
        If Data(i) = Unique_Values(j) Then
            Count = 1
            Exit For
        End If
    Next j
    If Count = 0 Then
        If Unique_Data = "" Then
            Unique_Data = Unique_Data + Data(i)
        Else
            Unique_Data = Unique_Data + "," + Data(i)
        End If
    End If
    Count = 0
Next i

Range(List_Location).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:=Unique_Data

End Sub

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

⧭ আউটপুট:

কোড চালান। এটি কক্ষের ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলিকে সরিয়ে দেবে B3 সক্রিয় ওয়ার্কশীটের এবং শুধুমাত্র সেই মানগুলি রাখুন যা অন্তত একবার প্রদর্শিত হয়।

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

⧭ নোট:

কোডটি চালানোর আগে ড্রপ-ডাউন তালিকা সহ ওয়ার্কশীটটি সক্রিয় করতে ভুলবেন না। এছাড়াও, কোড চালানোর আগে আপনার প্রয়োজন অনুযায়ী তালিকা অবস্থানের সেল রেফারেন্স পরিবর্তন করুন।

আরো পড়ুন: এক্সেলে অনন্য মান সহ একটি ড্রপ ডাউন তালিকা কীভাবে তৈরি করবেন (4টি পদ্ধতি)

2. একটি ড্রপ ডাউন তালিকায় অনন্য মান রাখতে একটি ম্যাক্রো তৈরি করা যা ঠিক একবার প্রদর্শিত হয়

এইবার, আমরা একটি ম্যাক্রো তৈরি করব ড্রপ-ডাউন তালিকায় ঠিক একবার প্রদর্শিত অনন্য মানগুলি রাখতে।

উদাহরণস্বরূপ, উপরে উল্লিখিত তালিকার জন্য, ম্যাক্রো-এর আউটপুট হবে ফ্রান্স, ইংল্যান্ড .

VBA এই উদ্দেশ্যে কোড হবে:

⧭ VBA কোড:

Sub Drop_Down_List_Unique_Values_Exactly_Once()

List_Location = "B3"

Data = Range(List_Location).Validation.Formula1
Data = Split(Data, ",")

Unique_Data = ""

Range(List_Location).Validation.Delete

Count = 0

For i = LBound(Data) To UBound(Data)
    For j = LBound(Data) To UBound(Data)
        If j <> i And Data(i) = Data(j) Then
            Count = 1
            Exit For
        End If
    Next j
    If Count = 0 Then
        If Unique_Data = "" Then
            Unique_Data = Unique_Data + Data(i)
        Else
            Unique_Data = Unique_Data + "," + Data(i)
        End If
    End If
    Count = 0
Next i

Range(List_Location).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:=Unique_Data

End Sub

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

⧭ আউটপুট:

কোড চালান। এটি সেল B3 এর ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলিকে সরিয়ে দেবে সক্রিয় ওয়ার্কশীটের এবং শুধুমাত্র সেই মানগুলি রাখুন যা ঠিক একবার প্রদর্শিত হয়।

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

⧭ নোট:

আবার কোডটি চালানোর আগে ড্রপ-ডাউন তালিকা সহ ওয়ার্কশীটটি সক্রিয় করতে ভুলবেন না। এছাড়াও, কোড চালানোর আগে আপনার প্রয়োজন অনুযায়ী তালিকা অবস্থানের সেল রেফারেন্স পরিবর্তন করুন।

সম্পর্কিত বিষয়বস্তু: এক্সেলে ড্রপ ডাউন তালিকা থেকে কীভাবে একাধিক নির্বাচন করবেন (3 উপায়)

অনুরূপ পড়া:

  • এক্সেলের নির্বাচনের উপর ভিত্তি করে ডেটা বের করার জন্য একটি ড্রপ ডাউন ফিল্টার তৈরি করা হচ্ছে
  • কীভাবে রঙ দিয়ে এক্সেল ড্রপ ডাউন তালিকা তৈরি করবেন (2 উপায়)
  • এক্সেল ড্রপ ডাউন তালিকা কাজ করছে না (৮টি সমস্যা এবং সমাধান)
  • এক্সেল এ স্বয়ংক্রিয় আপডেট ড্রপ ডাউন তালিকা (3 উপায়)
  • VBA এক্সেলের ড্রপ ডাউন তালিকা থেকে মান নির্বাচন করতে (২টি পদ্ধতি)

3. একটি ড্রপ ডাউন তালিকায় অনন্য মান রাখার জন্য একটি ব্যবহারকারীর ফর্ম তৈরি করা

অবশেষে, আমরা একটি UserForm তৈরি করব একটি ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলি সরাতে এবং VBA-এর সাথে শুধুমাত্র অনন্য মানগুলি রাখতে .

⧪ ধাপ 1:UserForm খোলা

সন্নিবেশ> UserForm-এ যান VBA-এ বিকল্প একটি নতুন UserForm খুলতে সম্পাদক . একটি নতুন ইউজারফর্ম UserForm1 বলা হয় খোলা হবে।

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

⧪ ধাপ 2:ইউজারফর্মে টুল টেনে আনুন

ইউজারফর্ম ছাড়াও , আপনি টুলবক্স পাবেন . আপনার কার্সারকে টুলবক্সের উপর নিয়ে যান এবং 3টি লেবেল টেনে আনুন এবং 2টি তালিকাবাক্স (লেবেল1 এর অধীনে এবং লেবেল3 ) এবং 1 টেক্সটবক্স (Label2 এর অধীনে ) চিত্রে দেখানো একটি উপায়ে।

অবশেষে, একটি কমান্ড বোতাম টেনে আনুন নীচে ডান কোণায়।

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

⧪ ধাপ 3:ListBox1 এর জন্য কোড লেখা

লিস্টবক্স1-এ ডাবল ক্লিক করুন . একটি ব্যক্তিগত উপপ্রক্রিয়া ListBox1_Click বলা হয় খুলবে. সেখানে নিম্নলিখিত কোড লিখুন।

Private Sub ListBox1_Click()

For i = 0 To UserForm1.ListBox1.ListCount - 1
    If UserForm1.ListBox1.Selected(i) = True Then
        Worksheets(UserForm1.ListBox1.List(i)).Activate
        Exit For
    End If
Next i

End Sub

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

⧪ ধাপ 4:টেক্সটবক্স1 এর জন্য কোড লেখা

তারপর TextBox1-এ ডাবল ক্লিক করুন . আরেকটি ব্যক্তিগত উপপ্রক্রিয়া যাকে বলা হয় TextBox1_Change খুলবে. সেখানে নিম্নলিখিত কোড লিখুন।

Private Sub TextBox1_Change()

On Error GoTo TB1:

ActiveSheet.Range(UserForm1.TextBox1.Text).Select

Exit Sub

TB1:
    x = 21

End Sub

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

⧪ ধাপ 6:CommandButton1 এর জন্য কোড লেখা

অবশেষে, CommandButton1-এ ডাবল ক্লিক করুন . একটি ব্যক্তিগত উপপ্রক্রিয়া CommandButton1_Click বলে খুলবে. সেখানে নিম্নলিখিত কোড লিখুন।

Private Sub CommandButton1_Click()

List_Location = UserForm1.TextBox1.Text

Data = Range(List_Location).Validation.Formula1
Data = Split(Data, ",")

Range(List_Location).Validation.Delete

Unique_Data = ""

Count = 0

If UserForm1.ListBox2.Selected(0) = True Then
    For i = LBound(Data) To UBound(Data)
        Unique_Values = Split(Unique_Data, ",")
        For j = LBound(Unique_Values) To UBound(Unique_Values)
            If Data(i) = Unique_Values(j) Then
                Count = 1
                Exit For
            End If
        Next j
        If Count = 0 Then
            If Unique_Data = "" Then
                Unique_Data = Unique_Data + Data(i)
            Else
                Unique_Data = Unique_Data + "," + Data(i)
            End If
        End If
        Count = 0
    Next i

ElseIf UserForm1.ListBox2.Selected(1) = True Then
    For i = LBound(Data) To UBound(Data)
        For j = LBound(Data) To UBound(Data)
            If j <> i And Data(i) = Data(j) Then
                Count = 1
                Exit For
            End If
        Next j
        If Count = 0 Then
            If Unique_Data = "" Then
                Unique_Data = Unique_Data + Data(i)
            Else
                Unique_Data = Unique_Data + "," + Data(i)
            End If
        End If
        Count = 0
    Next i
Else
    MsgBox "Select Either At Least Once or Exactly Once.", vbExclamation
End If

Range(List_Location).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:=Unique_Data

End Sub

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

⧪ ধাপ 7:ইউজারফর্ম চালানোর জন্য কোড লেখা

একটি নতুন মডিউল ঢোকান৷ VBA টুলবার থেকে এবং সেখানে নিম্নলিখিত কোড সন্নিবেশ করান।

Sub Run_UserForm()

UserForm1.Caption = "Keep Unique Values in Drop-Down List"

UserForm1.Label1.Caption = "Worksheet: "
UserForm1.Label2.Caption = "List Location: "
UserForm1.Label3.Caption = "Keep Unique Values that Appear: "

UserForm1.ListBox1.BorderStyle = fmBorderStyleSingle
UserForm1.ListBox1.ListStyle = fmListStyleOption

For i = 1 To Sheets.Count
    UserForm1.ListBox1.AddItem Sheets(i).Name
Next i

For i = 0 To UserForm1.ListBox1.ListCount - 1
    If UserForm1.ListBox1.List(i) = ActiveSheet.Name Then
        UserForm1.ListBox1.Selected(i) = True
        Exit For
    End If
Next i

UserForm1.ListBox2.BorderStyle = fmBorderStyleSingle
UserForm1.ListBox2.ListStyle = fmListStyleOption

UserForm1.ListBox2.AddItem "At Least Once"
UserForm1.ListBox2.AddItem "Exactly Once"

UserForm1.CommandButton1.Caption = "OK"

Load UserForm1
UserForm1.Show

End Sub

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

⧪ ধাপ 8:ইউজারফর্ম চালানো (চূড়ান্ত আউটপুট)

আপনার ইউজারফর্ম এখন ব্যবহারের জন্য প্রস্তুত। ম্যাক্রো চালান Run_UserForm বলা হয় .

ইউজারফর্ম ওয়ার্কশীটে লোড করা হবে।

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

যে ওয়ার্কশীটটিতে ড্রপ-ডাউন তালিকা রয়েছে তা নির্বাচন করুন। এখানে এটি শীট3 .

তারপর ওয়ার্কশীটে তালিকার অবস্থানের সেল রেফারেন্স লিখুন। এখানে এটি B3 .

অবশেষে, অন্তত একবার নির্বাচন করুন অথবা ঠিক একবার। এখানে আমি কমপক্ষে একবার নির্বাচন করেছি .

তাই আমার ইউজারফর্ম এই মত দেখায়:

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

তারপর ঠিক আছে ক্লিক করুন . আপনি আপনার নির্বাচিত মানদণ্ড অনুযায়ী ইনপুট অবস্থানের ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলি সরিয়ে ফেলবেন৷

এক্সেলে VBA সহ ড্রপ ডাউন তালিকার অনন্য মান (একটি সম্পূর্ণ নির্দেশিকা)

আরো পড়ুন: এক্সেলের সূত্রের উপর ভিত্তি করে কীভাবে একটি ড্রপ-ডাউন তালিকা তৈরি করবেন (4 উপায়)

মনে রাখার মতো বিষয়গুলি

  • এই নিবন্ধে, আমি শুধুমাত্র একটি ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলি সরানোর উপর ফোকাস করেছি। আপনি যদি শিখতে চান কিভাবে একটি ড্রপ-ডাউন তালিকা তৈরি করতে হয়, বা কীভাবে একটি ডুপ্লিকেট তালিকায় মানগুলি সাজাতে হয়, আপনি এই নিবন্ধটি পড়তে পারেন৷

উপসংহার

সুতরাং, এইগুলি হল একটি ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলি সরিয়ে ফেলার এবং এক্সেল VBA-এর সাহায্যে শুধুমাত্র অনন্য মানগুলি পিছনে রাখার উপায়। . আপনি কি কিছু জানতে চান? আমাদের জিজ্ঞাসা নির্দ্বিধায়. এবং আমাদের সাইট ExcelDemy দেখতে ভুলবেন না আরো পোস্ট এবং আপডেটের জন্য।

সম্পর্কিত প্রবন্ধ

  • এক্সেলে ড্রপ ডাউন তালিকার সাথে একটি সেল মান কীভাবে লিঙ্ক করবেন (5 উপায়)
  • Excel এ শর্তসাপেক্ষ ড্রপ ডাউন তালিকা (তৈরি করুন, সাজান এবং ব্যবহার করুন)
  • এক্সেলে কিভাবে ডায়নামিক ডিপেন্ডেন্ট ড্রপ ডাউন লিস্ট তৈরি করবেন
  • এক্সেলে ড্রপ-ডাউন তালিকা তৈরি করতে IF স্টেটমেন্ট কীভাবে ব্যবহার করবেন
  • Excel এ ড্রপ ডাউন তালিকা সহ VLOOKUP

  1. এক্সেল-এ স্বয়ংক্রিয়ভাবে ডেটা যাচাইকরণ ড্রপ ডাউন তালিকা (2 পদ্ধতি)

  2. ফিল্টার সহ এক্সেল ডেটা যাচাইকরণ ড্রপ ডাউন তালিকা (২টি উদাহরণ)

  3. এক্সেলে একাধিক শব্দ দিয়ে কীভাবে নির্ভরশীল ড্রপ ডাউন তালিকা তৈরি করবেন

  4. এক্সেলে ড্রপ ডাউন তালিকা সহ কিভাবে ডেটা এন্ট্রি ফর্ম তৈরি করবেন (2 পদ্ধতি)