এই নিবন্ধে, আমি আপনাকে দেখাব কিভাবে আপনি ড্রপ ডাউন তালিকা থেকে ডুপ্লিকেট মানগুলি সরাতে পারেন 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
এক্সেল ভিবিএ-এর সাহায্যে ড্রপ ডাউন তালিকায় কীভাবে অনন্য মান রাখবেন
এখানে আমরা B3 কক্ষে একটি ড্রপ-ডাউন তালিকা পেয়েছি একটি এক্সেল ওয়ার্কশীট যাতে কিছু দেশের নাম থাকে।
কিন্তু আপনি দেখতে পাচ্ছেন, তালিকায় কিছু নাম বারবার এসেছে। যেমন জার্মানি তিনবার পুনরাবৃত্তি হয়েছে, এবং ইতালিতে দুবার পুনরাবৃত্তি হয়েছে।
আমাদের উদ্দেশ্য হল ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলি সরিয়ে দেওয়া এবং শুধুমাত্র অনন্য মানগুলি রাখা৷
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
⧭ আউটপুট:
কোড চালান। এটি কক্ষের ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলিকে সরিয়ে দেবে B3 সক্রিয় ওয়ার্কশীটের এবং শুধুমাত্র সেই মানগুলি রাখুন যা অন্তত একবার প্রদর্শিত হয়।
⧭ নোট:
কোডটি চালানোর আগে ড্রপ-ডাউন তালিকা সহ ওয়ার্কশীটটি সক্রিয় করতে ভুলবেন না। এছাড়াও, কোড চালানোর আগে আপনার প্রয়োজন অনুযায়ী তালিকা অবস্থানের সেল রেফারেন্স পরিবর্তন করুন।
আরো পড়ুন: এক্সেলে অনন্য মান সহ একটি ড্রপ ডাউন তালিকা কীভাবে তৈরি করবেন (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
⧭ আউটপুট:
কোড চালান। এটি সেল B3 এর ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলিকে সরিয়ে দেবে সক্রিয় ওয়ার্কশীটের এবং শুধুমাত্র সেই মানগুলি রাখুন যা ঠিক একবার প্রদর্শিত হয়।
⧭ নোট:
আবার কোডটি চালানোর আগে ড্রপ-ডাউন তালিকা সহ ওয়ার্কশীটটি সক্রিয় করতে ভুলবেন না। এছাড়াও, কোড চালানোর আগে আপনার প্রয়োজন অনুযায়ী তালিকা অবস্থানের সেল রেফারেন্স পরিবর্তন করুন।
সম্পর্কিত বিষয়বস্তু: এক্সেলে ড্রপ ডাউন তালিকা থেকে কীভাবে একাধিক নির্বাচন করবেন (3 উপায়)
অনুরূপ পড়া:
- এক্সেলের নির্বাচনের উপর ভিত্তি করে ডেটা বের করার জন্য একটি ড্রপ ডাউন ফিল্টার তৈরি করা হচ্ছে
- কীভাবে রঙ দিয়ে এক্সেল ড্রপ ডাউন তালিকা তৈরি করবেন (2 উপায়)
- এক্সেল ড্রপ ডাউন তালিকা কাজ করছে না (৮টি সমস্যা এবং সমাধান)
- এক্সেল এ স্বয়ংক্রিয় আপডেট ড্রপ ডাউন তালিকা (3 উপায়)
- VBA এক্সেলের ড্রপ ডাউন তালিকা থেকে মান নির্বাচন করতে (২টি পদ্ধতি)
3. একটি ড্রপ ডাউন তালিকায় অনন্য মান রাখার জন্য একটি ব্যবহারকারীর ফর্ম তৈরি করা
অবশেষে, আমরা একটি UserForm তৈরি করব একটি ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলি সরাতে এবং VBA-এর সাথে শুধুমাত্র অনন্য মানগুলি রাখতে .
⧪ ধাপ 1:UserForm খোলা
সন্নিবেশ> UserForm-এ যান VBA-এ বিকল্প একটি নতুন UserForm খুলতে সম্পাদক . একটি নতুন ইউজারফর্ম UserForm1 বলা হয় খোলা হবে।
⧪ ধাপ 2:ইউজারফর্মে টুল টেনে আনুন
ইউজারফর্ম ছাড়াও , আপনি টুলবক্স পাবেন . আপনার কার্সারকে টুলবক্সের উপর নিয়ে যান এবং 3টি লেবেল টেনে আনুন এবং 2টি তালিকাবাক্স (লেবেল1 এর অধীনে এবং লেবেল3 ) এবং 1 টেক্সটবক্স (Label2 এর অধীনে ) চিত্রে দেখানো একটি উপায়ে।
অবশেষে, একটি কমান্ড বোতাম টেনে আনুন নীচে ডান কোণায়।
⧪ ধাপ 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
⧪ ধাপ 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
⧪ ধাপ 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
⧪ ধাপ 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
⧪ ধাপ 8:ইউজারফর্ম চালানো (চূড়ান্ত আউটপুট)
আপনার ইউজারফর্ম এখন ব্যবহারের জন্য প্রস্তুত। ম্যাক্রো চালান Run_UserForm বলা হয় .
ইউজারফর্ম ওয়ার্কশীটে লোড করা হবে।
যে ওয়ার্কশীটটিতে ড্রপ-ডাউন তালিকা রয়েছে তা নির্বাচন করুন। এখানে এটি শীট3 .
তারপর ওয়ার্কশীটে তালিকার অবস্থানের সেল রেফারেন্স লিখুন। এখানে এটি B3 .
অবশেষে, অন্তত একবার নির্বাচন করুন অথবা ঠিক একবার। এখানে আমি কমপক্ষে একবার নির্বাচন করেছি .
তাই আমার ইউজারফর্ম এই মত দেখায়:
তারপর ঠিক আছে ক্লিক করুন . আপনি আপনার নির্বাচিত মানদণ্ড অনুযায়ী ইনপুট অবস্থানের ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলি সরিয়ে ফেলবেন৷
আরো পড়ুন: এক্সেলের সূত্রের উপর ভিত্তি করে কীভাবে একটি ড্রপ-ডাউন তালিকা তৈরি করবেন (4 উপায়)
মনে রাখার মতো বিষয়গুলি৷
- এই নিবন্ধে, আমি শুধুমাত্র একটি ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলি সরানোর উপর ফোকাস করেছি। আপনি যদি শিখতে চান কিভাবে একটি ড্রপ-ডাউন তালিকা তৈরি করতে হয়, বা কীভাবে একটি ডুপ্লিকেট তালিকায় মানগুলি সাজাতে হয়, আপনি এই নিবন্ধটি পড়তে পারেন৷
উপসংহার
সুতরাং, এইগুলি হল একটি ড্রপ-ডাউন তালিকা থেকে সদৃশ মানগুলি সরিয়ে ফেলার এবং এক্সেল VBA-এর সাহায্যে শুধুমাত্র অনন্য মানগুলি পিছনে রাখার উপায়। . আপনি কি কিছু জানতে চান? আমাদের জিজ্ঞাসা নির্দ্বিধায়. এবং আমাদের সাইট ExcelDemy দেখতে ভুলবেন না আরো পোস্ট এবং আপডেটের জন্য।
সম্পর্কিত প্রবন্ধ
- এক্সেলে ড্রপ ডাউন তালিকার সাথে একটি সেল মান কীভাবে লিঙ্ক করবেন (5 উপায়)
- Excel এ শর্তসাপেক্ষ ড্রপ ডাউন তালিকা (তৈরি করুন, সাজান এবং ব্যবহার করুন)
- এক্সেলে কিভাবে ডায়নামিক ডিপেন্ডেন্ট ড্রপ ডাউন লিস্ট তৈরি করবেন
- এক্সেলে ড্রপ-ডাউন তালিকা তৈরি করতে IF স্টেটমেন্ট কীভাবে ব্যবহার করবেন
- Excel এ ড্রপ ডাউন তালিকা সহ VLOOKUP