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

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 ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট এন্ট্রি রিমুভ: সম্পূর্ণ গাইড

VBA দিয়ে ড্রপ ডাউন লিস্টে ইউনিক ভ্যালু কীভাবে রাখবেন

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

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট এন্ট্রি রিমুভ: সম্পূর্ণ গাইড

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

আজ আমাদের উদ্দেশ্য হলো ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট ভ্যালু রিমুভ করে শুধু ইউনিক ভ্যালুগুলো রাখা।

১. কমপক্ষে একবার উপস্থিত ইউনিক ভ্যালু রাখতে ম্যাক্রো ডেভেলপ করা

প্রথমে, আমরা একটি Macro ডেভেলপ করব কমপক্ষে একবার উপস্থিত ইউনিক ভ্যালুগুলো ড্রপ ডাউন লিস্টে রাখতে।

উদাহরণস্বরূপ, উপরের লিস্টের জন্য, Macro-র আউটপুট হবে Germany, Italy, France, England।

এই উদ্দেশ্যে 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 ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট এন্ট্রি রিমুভ: সম্পূর্ণ গাইড

⧭ নোটস:

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

আরও পড়ুন: এক্সেলে ইউনিক ভ্যালুসহ ড্রপ ডাউন লিস্ট তৈরির ৪ পদ্ধতি

২. ঠিক একবার উপস্থিত ইউনিক ভ্যালু রাখতে ম্যাক্রো তৈরি

এবারের বاری, আমরা একটি Macro ডেভেলপ করব ঠিক একবার উপস্থিত ইউনিক ভ্যালুগুলো ড্রপ ডাউন লিস্টে রাখতে।

উদাহরণস্বরূপ, উপরের লিস্টের জন্য, Macro-র আউটপুট হবে France, England।

এই উদ্দেশ্যে 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 ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট এন্ট্রি রিমুভ: সম্পূর্ণ গাইড

⧭ নোটস:

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

সম্পর্কিত কন্টেন্ট: এক্সেলে ড্রপ ডাউন লিস্ট থেকে একাধিক সিলেকশন করার ৩ উপায়

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

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

৩. ড্রপ ডাউন লিস্টে ইউনিক ভ্যালু রাখতে UserForm ডেভেলপ করা

শেষে, আমরা একটি UserForm ডেভেলপ করব ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট ভ্যালু রিমুভ করে শুধু ইউনিক ভ্যালু রাখতে VBA-র সাহায্যে।

⧪ ধাপ ১: UserForm খোলা

VBA এডিটরে Insert > UserForm অপশনে যান একটি নতুন UserForm খোলার জন্য। একটি নতুন UserForm নামক UserForm1 খুলবে।

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট এন্ট্রি রিমুভ: সম্পূর্ণ গাইড

⧪ ধাপ ২: UserForm-এ টুলস ড্র্যাগ করা

UserForm-এর পাশে আপনি Toolbox পাবেন। আপনার কার্সর Toolbox-এর ওপর নিলে এবং ৩টি Label এবং ২টি ListBox ( Label1 এবং Label3-এর নিচে) এবং ১টি TextBox ( Label2-এর নিচে) ড্র্যাগ করুন চিত্রে দেখানোভাবে।

শেষে, নিচের ডান কোণে একটি CommandButton ড্র্যাগ করুন।

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট এন্ট্রি রিমুভ: সম্পূর্ণ গাইড

⧪ ধাপ ৩: ListBox1-এর জন্য কোড লিখা

ListBox1-এ ডাবল ক্লিক করুন। একটি Private Subprocedure নামক 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 ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট এন্ট্রি রিমুভ: সম্পূর্ণ গাইড

⧪ ধাপ ৪: TextBox1-এর জন্য কোড লিখা

তারপর TextBox1-এ ডাবল ক্লিক করুন। আরেকটি Private Subprocedure নামক TextBox1_Change খুলবে। সেখানে নিচের কোডটি লিখুন।

Private Sub TextBox1_Change() 
    On Error GoTo TB1: 
    ActiveSheet.Range(UserForm1.TextBox1.Text).Select 
    Exit Sub 
    TB1: 
    x = 21 
End Sub

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট এন্ট্রি রিমুভ: সম্পূর্ণ গাইড

⧪ ধাপ ৬: CommandButton1-এর জন্য কোড লিখা

শেষে, CommandButton1-এ ডাবল ক্লিক করুন। একটি Private Subprocedure নামক 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 ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট এন্ট্রি রিমুভ: সম্পূর্ণ গাইড

⧪ ধাপ ৭: UserForm রান করার জন্য কোড লিখা

VBA toolbar- থেকে একটি নতুন Module ইনসার্ট করুন এবং সেখানে নিচের কোডটি ইনসার্ট করুন।

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 ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট এন্ট্রি রিমুভ: সম্পূর্ণ গাইড

⧪ ধাপ ৮: UserForm রান করা (শেষ আউটপুট)

আপনার UserForm এখন ব্যবহার করার জন্য প্রস্তুত। Run_UserForm নামক Macro রান করুন।

UserForm ওয়ার্কশীটে লোড হবে।

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট এন্ট্রি রিমুভ: সম্পূর্ণ গাইড

ড্রপ-ডাউন লিস্ট থাকা ওয়ার্কশীট সিলেক্ট করুন। এখানে এটা Sheet3।

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

শেষে, At Least Once বা Exactly Once যেকোনো একটি সিলেক্ট করুন। এখানে আমি At Least Once সিলেক্ট করেছি।

তাহলে আমার UserForm এর রূপ হবে এমনঃ

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট এন্ট্রি রিমুভ: সম্পূর্ণ গাইড

তারপর OK চাপুন। আপনি আপনার বেছে নেওয়া ক্রাইটেরিয়ার অনুযায়ী ইনপুট লোকেশনের ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট ভ্যালু রিমুভ হওয়া পাবেন।

VBA ব্যবহার করে এক্সেল ড্রপ-ডাউন লিস্ট থেকে ডুপ্লিকেট এন্ট্রি রিমুভ: সম্পূর্ণ গাইড

আরও পড়ুন: ফর্মুলা বেসড ড্রপ-ডাউন লিস্ট এক্সেলে তৈরির ৪ উপায়

মনে রাখবেন

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

উপসংহার

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

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

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

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

  2. ডেটা ভ্যালিডেশন ড্রপ-ডাউন লিস্ট দিয়ে এক্সেল ডেটা ফিল্টার করুন - ২টি ব্যাবহারিক উদাহরণ

  3. এক্সেলে মাল্টি-ওয়ার্ড ডিপেন্ডেন্ট ড্রপ-ডাউন লিস্ট তৈরি করুন - ধাপে ধাপে গাইড

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