Microsoft Excel একটি ওয়ার্কশিট বা এক্সেল টেবিল- থেকে AutoFilter সরিয়ে ফেলার একাধিক উপায় অফার করে। এই নিবন্ধে, আপনি ৭টি পদ্ধতি শিখবেন VBA স্ক্রিপ্ট ব্যবহার করে এক্সেলে যদি AutoFilter বিদ্যমান থাকে তবে তা কীভাবে সরিয়ে ফেলবেন।
নিচের লিংক থেকে এক্সেল ফাইলটি ডাউনলোড করুন এবং সাথে সাথে অনুশীলন করুন।
এক্সেলে AutoFilter যদি বিদ্যমান থাকে তবে VBA ব্যবহার করে তা সরিয়ে ফেলার ৭টি উদাহরণ
১. সক্রিয় ওয়ার্কশিট থেকে AutoFilter সরিয়ে ফেলা (যদি বিদ্যমান থাকে)
নিচের স্ক্রিনশটে সক্রিয় ওয়ার্কশিট-এ AutoFilter কাজ করছে দেখানো হয়েছে। আমরা এই AutoFilter-কে VBA কোড ব্যবহার করে সরিয়ে ফেলব।

যদি আপনি সক্রিয় ওয়ার্কশিট- থেকে AutoFilter সরিয়ে ফেলতে চান তবে নিচের ধাপগুলো অনুসরণ করুন:
❶ প্রথমে ALT + F11 চাপে VBA Editor খুলুন।
❷ তারপর Insert >> Module-এ যান।

❸ নিচের VBA কোডটি Copy করুন।
Public Sub RemoveAFActiveWorksheet() If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False End If End Sub
❹ VBA Editor-এ কোডটি Paste করে Save করুন।

কোডের ব্যাখ্যা
- এখানে, আমি একটি Sub Procedure তৈরি করলাম Public Sub RemoveAFActiveWorksheet
- তারপর, আমি একটি IF Statement ব্যবহার করলাম যেন চেক করা যায় কোনো AutoFilter বিদ্যমান আছে কিনা। যদি থাকে তবে AutoFilterMode-কে False সেট করে তা সরিয়ে ফেলা হয়।
❺ সক্রিয় ওয়ার্কশিট-এ ফিরে যান এবং ALT + F11 চাপে Macro ডায়ালগ বক্স খুলুন।
❻ RemoveAFActiveWorksheet ম্যাক্রোটি নির্বাচন করে Run বাটনে ক্লিক করুন।

এখন আপনি দেখবেন AutoFilter সরিয়ে ফেলা হয়েছে এবং সारा ডেটা দৃশ্যমান হয়েছে।

আরও পড়ুন: এক্সেল VBA-তে চেক করুন AutoFilter অন আছে কিনা (৪ সহজ পদ্ধতি)
২. VBA ব্যবহার করে সকল ওয়ার্কশিট থেকে AutoFilter ডিলিট করা
নিচের ছবিটি দেখুন। দুটি ওয়ার্কশিটইতে AutoFilter লাগানো আছে। এখন আমরা VBA কোড লিখব এক ওয়ার্কবുക്കের সকল ওয়ার্কশিট থেকে AutoFilter সরিয়ে ফেলার জন্য।

এক ওয়ার্কবുക്കের সকল ওয়ার্কশিট থেকে AutoFilter ডিলিট করতে নিচের ধাপগুলো অনুসরণ করুন:
❶ প্রথমে ALT + F11 চাপে VBA Editor খুলুন।
❷ তারপর Insert >> Module-এ যান।

❸ নিচের VBA কোডটি Copy করুন।
Public Sub DeleteAFfromallWorksheets() Dim xWs1 As Worksheet For Each xWs1 In ActiveWorkbook.Worksheets If xWs1.AutoFilterMode = True Then xWs1.AutoFilterMode = False End If Next xWs1 End Sub
❹ VBA Editor-এ কোডটি Paste করে Save করুন।

কোডের ব্যাখ্যা
- এখানে, আমি একটি For loop ব্যবহার করলাম প্রতিটি ওয়ার্কশিটে AutoFilter খুঁজে বের করার জন্য।
- তারপর, আমি একটি IF Statement ব্যবহার করলাম যেন চেক করা যায় কোনো AutoFilter বিদ্যমান আছে কিনা। যদি থাকে তবে ActiveSheet.AutoFilterMode-কে False সেট করে তা সরিয়ে ফেলা হয়।
❺ আপনার ওয়ার্কশিট-এ ফিরে যান এবং ALT + F11 চাপে Macro ডায়ালগ বক্স খুলুন।
❻ RemoveAFfromallWorksheets ম্যাক্রোটি নির্বাচন করে Run বাটনে ক্লিক করুন।

এখন আপনি দেখবেন আপনার ওয়ার্কবুক-এর সকল ওয়ার্কশিট- থেকে সব AutoFilter আইকন সরিয়ে ফেলা হয়েছে, নিচের ছবির মতো:

৩. একটি টেবিলের একক কলাম থেকে AutoFilter ক্লিয়ার করা
নিচের ছবিতে দেখানো হয়েছে AutoFilter শুধু টেবিলের প্রথম কলামে লাগানো আছে। এই পদ্ধতিতে, আমরা এক্সেলে একটি টেবিলের একক কলাম থেকে AutoFilter ক্লিয়ার করার কোড লিখব।

সেটা করতে,
❶ প্রথমে ALT + F11 চাপে VBA Editor খুলুন।
❷ তারপর Insert >> Module-এ যান।

❸ এখন নিচের VBA কোডটি Copy করুন।
Sub DeleteAFSingleColumnfromTable() Dim xWs1 As Worksheet Dim xTableName1 As String Dim xLT1 As ListObject xTableName1 = "TableA" Set xWs1 = Sheets("MyTable1") Set xLT1 = xWs1.ListObjects(xTableName1) xLT1.Range.AutoFilter Field:=1 End Sub
❹ তারপর, VBA Editor-এ কোডটি Paste করে Save করুন।

কোডের ব্যাখ্যা
- প্রথমে, আমি ৩টি ভেরিয়েবল ঘোষণা করলাম।
- তারপর আমি টেবিলের নাম দিলাম এবং শিটের নাম সেট করলাম।
- পরে, আমি ListObjects প্রপার্টি ব্যবহার করলাম একটি টেবিলের সকল কন্টেন্ট দৃশ্যমান করতে।
- শেষে, আমি AutoFilter Field ব্যবহার করে একটি টেবিল কলামের ইনডেক্স ইনপুট করলাম
❺ আপনার ওয়ার্কশিট-এ ফিরে যান এবং ALT + F11 চাপে Macro ডায়ালগ বক্স খুলুন।
❻ RemoveAFSingleColumnfromTable ম্যাক্রোটি নির্বাচন করে Run বাটনে ক্লিক করুন।

এরপর, আপনি দেখবেন আপনার টেবিলের প্রথম কলামে আর AutoFilter নেই।

৪. একটি টেবিলের একাধিক কলাম থেকে AutoFilter সরিয়ে ফেলা
নিচের ছবিতে একটি টেবিলের প্রথম এবং দ্বিতীয় কলামে দুটি AutoFilter আইকন দেখানো হয়েছে। আপনি এই পদ্ধতি অনুসরণ করে VBA ব্যবহার করে একটি টেবিলের দুটি কলাম থেকে AutoFilter সরিয়ে ফেলতে পারেন।

এখন নিচের ধাপগুলো অনুসরণ করুন এক্সেল টেবিলে একাধিক কলাম থেকে AutoFilter ক্লিয়ার করতে (যদি বিদ্যমান থাকে):
❶ প্রথমে ALT + F11 চাপে VBA Editor খুলুন।
❷ তারপর Insert >> Module-এ যান।

❸ নিচের VBA কোডটি Copy করুন।
Sub DeleteAFMultiColumnsfromTable() Dim xWs1 As Worksheet Dim xTableName1 As String Dim xLT1 As ListObject xTableName1 = "TableA" Set xWs1 = Sheets("MyTable1") Set xLT1 = xWs1.ListObjects(xTableName1) xLT1.Range.AutoFilter Field:=1 xLT1.Range.AutoFilter Field:=2 End Sub
❹ VBA Editor-এ কোডটি Paste করে Save করুন।

কোডের ব্যাখ্যা
- প্রথমে, আমি ৩টি ভেরিয়েবল ঘোষণা করলাম।
- তারপর আমি টেবিলের নাম দিলাম এবং শিটের নাম সেট করলাম।
- পরে, আমি ListObjects প্রপার্টি ব্যবহার করলাম একটি টেবিলের সকল কন্টেন্ট দৃশ্যমান করতে।
- শেষে, আমি AutoFilter Field ব্যবহার করে দুটি টেবিল কলামের ইনডেক্স ইনপুট করলাম
❺ এখন, ওয়ার্কশিট-এ ফিরে যান এবং ALT + F11 চাপে Macro ডায়ালগ বক্স খুলুন।
❻ DeleteAFMultiColumnsfromTable ম্যাক্রোটি নির্বাচন করে Run বাটনে ক্লিক করুন।

কোড রান করার পর, আপনি দেখবেন AutoFilter একাধিক কলাম থেকে সরিয়ে ফেলা হয়েছে।

আরও পড়ুন: [সমাধান:] AutoFilter Method of Range Class Failed (৫ সমাধান)
৫. এক্সেল VBA ব্যবহার করে সমগ্র টেবিল থেকে AutoFilter ক্লিয়ার করা
যদি আপনার টেবিলে নিচের ছবির মতো AutoFilter লাগানো থাকে এবং আপনি সেগুলো সব সরিয়ে ফেলতে চান, তবে এই পদ্ধতিটি অনুসরণ করুন।

❶ প্রথমে ALT + F11 চাপে VBA Editor খুলুন।
❷ তারপর Insert >> Module-এ যান।

❸ নিচের VBA কোডটি Copy করুন।
Sub RemoveAFfromEntireTable() Dim xWs1 As Worksheet Dim xTable1 As String Dim xTable2 As ListObject xTable1 = "TableB" Set xWs1 = ActiveSheet Set xTable2 = xWs1.ListObjects(xTable1) xTable2.AutoFilter.ShowAllData End Sub
❹ VBA Editor-এ কোডটি Paste করে Save করুন।

কোডের ব্যাখ্যা
- প্রথমে, আমি ৩টি ভেরিয়েবল ঘোষণা করলাম।
- তারপর আমি টেবিলের নাম দিলাম এবং শিটের নাম ActiveSheet হিসেবে সেট করলাম।
- পরে, আমি ListObjects প্রপার্টি ব্যবহার করলাম একটি টেবিলের সকল কন্টেন্ট দৃশ্যমান করতে এবং Set স্টেটমেন্ট ব্যবহার করলাম এটিকে xTable2-তে স্টোর করতে।
- শেষে, আমি ShowAllData প্রপার্টি ব্যবহার করলাম AutoFilter বন্ধ করতে।
❺ টেবিল থাকা ওয়ার্কশিট-এ ফিরে যান এবং ALT + F11 চাপে Macro ডায়ালগ বক্স খুলুন।
❻ RemoveAFfromEntireTable ম্যাক্রোটি নির্বাচন করে Run বাটনে ক্লিক করুন।

এখন AutoFilter সমগ্র টেবিল থেকে সরিয়ে ফেলা হবে, নিচের ছবির মতো:

৬. পাসওয়ার্ড প্রোটেক্টেড ওয়ার্কশিট থেকে AutoFilter ডিলিট করা (যদি বিদ্যমান থাকে)
নিচের ছবিতে दिखানো ডেটাসেটে AutoFilter সক্রিয় এবং এটি পাসওয়ার্ড দিয়ে প্রোটেক্ট করা। পাসওয়ার্ডটি হলো 7878।
এই পদ্ধতিতে, আপনি একটি VBA কোড পাবেন যেটি একটি পাসওয়ার্ড-প্রোটেক্টেড ওয়ার্কশিট থেকে AutoFilter ক্লিয়ার করবে।

এখন নিচের ধাপগুলো অনুসরণ করুন:
❶ প্রথমে ALT + F11 চাপে VBA Editor খুলুন।
❷ তারপর Insert >> Module-এ যান।

❸ নিচের VBA কোডটি Copy করুন।
Sub RemoveAFwithPass() Dim UserPwd As String UserPwd = "7878" With ActiveSheet .Unprotect Password:=UserPwd .ShowAllData .Protect _ Contents:=True, _ AllowFiltering:=True, _ UserInterfaceOnly:=True, _ Password:=UserPwd End With End Sub
❹ VBA Editor-এ কোডটি Paste করে Save করুন।

কোডের ব্যাখ্যা
- প্রথমে, আমি একটি ভেরিয়েবল ঘোষণা করলাম এবং পাসওয়ার্ড ইনপুট করলাম।
- তারপর ActiveSheet-এ, আমি User Password-কে Unprotect Password-এ অ্যাসাইন করলাম।
- ShowAllData প্রপার্টি ব্যবহার করলাম সব কিছু আনহাইড করতে।
- তারপর আমি True অ্যাসাইন করলাম Contents, AllowFiltering, এবং UserInterfaceOnly-কে আনপ্রোটেক্ট করতে।
❺ পাসওয়ার্ড-প্রোটেক্টেড ওয়ার্কশিট-এ ফিরে যান এবং ALT + F11 চাপে Macro ডায়ালগ বক্স খুলুন।
❻ RemoveAFwithPass ম্যাক্রোটি নির্বাচন করে Run বাটনে ক্লিক করুন।

এরপর, AutoFilter সরিয়ে ফেলা হবে এবং সকল রেকর্ড দৃশ্যমান হবে এইভাবে:

৭. পাসওয়ার্ড ছাড়া প্রোটেক্টেড ওয়ার্কশিট থেকে AutoFilter সরিয়ে ফেলার জন্য VBA ব্যবহার
নিচের ছবিতে একটি প্রোটেক্টেড ডেটাসেট দেখানো হয়েছে পাসওয়ার্ড ছাড়া। এই পদ্ধতিতে, আমরা একটি পাসওয়ার্ড-লেস প্রোটেক্টেড ওয়ার্কশিট থেকে AutoFilter সরিয়ে ফেলার কোড লিখব।

এখন নিচের ধাপগুলো অনুসরণ করুন:
❶ প্রথমে ALT + F11 চাপে VBA Editor খুলুন।
❷ তারপর Insert >> Module-এ যান।

❸ নিচের VBA কোডটি Copy করুন।
Sub RemoveAFwithoutPass() With ActiveSheet .Unprotect .ShowAllData .Protect _ Contents:=True, _ AllowFiltering:=True, _ UserInterfaceOnly:=True End With End Sub
❹ VBA Editor-এ কোডটি Paste করে Save করুন।

কোডের ব্যাখ্যা
- প্রথমে, আমি ActiveSheet-এ With স্টেটমেন্ট প্রয়োগ করলাম এবং Unprotect প্রপার্টি ব্যবহার করলাম আনলক করতে।
- তারপর, আমি ShowAllData প্রপার্টি ব্যবহার করলাম সব কিছু আনহাইড করতে।
- তারপর আমি True অ্যাসাইন করলাম Contents, AllowFiltering, এবং UserInterfaceOnly-কে সেগুলো আনপ্রোটেক্ট করতে।
❺ সক্রিয় ওয়ার্কশিট-এ ফিরে যান এবং ALT + F11 চাপে Macro ডায়ালগ বক্স খুলুন।
❻ RemoveAFwithoutPass ম্যাক্রোটি নির্বাচন করে Run বাটনে ক্লিক করুন।

শেষে, AutoFilter ক্লিয়ার হয়ে যাবে এবং সকল ডেটা দৃশ্যমান হবে এইভাবে:

অনুশীলন বিভাগ
প্রদত্ত এক্সেল ফাইলের শেষে আপনি নিচের স্ক্রিনশটের মতো একটি এক্সেল শিট পাবেন। যেখানে আপনি এই নিবন্ধে আলোচনা করা সকল পদ্ধতিতে অনুশীলন করতে পারেন।

উপসংহার
সংক্ষেপে, আমরা এক্সেলে VBA ব্যবহার করে AutoFilter যদি বিদ্যমান থাকে তবে তা সরিয়ে ফেলার ৭টি পদ্ধতি আলোচনা করেছি। আপনাকে পরামর্শ দেওয়া হচ্ছে এই নিবন্ধের সাথে সংযুক্ত প্র্যাকটিস ওয়ার্কবুক ডাউনলোড করে সকল পদ্ধতিতে অনুশীলন করার। এবং কমেন্ট সেকশনে যেকোনো প্রশ্ন জিজ্ঞেস করতে সংকোচ করবেন না। আমরা যতটা সম্ভব দ্রুত সব প্রাসঙ্গিক প্রশ্নের উত্তর দিতে চেষ্টা করব। এবং আমাদের ওয়েবসাইট ExcelDemy দেখুন আরও এক্সেল সম্পর্কিত নিবন্ধের জন্য।
সম্পর্কিত নিবন্ধসমূহ
- VBA to AutoFilter with Multiple Criteria on Same Field in Excel (4 Methods)
- How to Autofilter Values Not Equal to a Certain Value with VBA in Excel
- VBA Autofilter: Sort Smallest to Largest (3 Methods)
- How to Autofilter and Copy Visible Rows with Excel VBA