এক্সেলের অটোফিল্টার বৈশিষ্ট্য নির্দিষ্ট শর্তের উপর ভিত্তি করে ডেটা বের করতে সত্যিই দক্ষ। কিন্তু কখনও কখনও প্রযুক্তিগত সমস্যার কারণে, অটোফিল্টার লুকানো হয় বা কোনো ফিল্টার না থাকলেও এক্সেল দেখায় যে সেখানে আছে। সেক্ষেত্রে, অটোফিল্টার কিনা তা বোঝা অসম্ভব এক্সেল ওয়ার্কশীটের জন্য সক্ষম বা না। VBA বাস্তবায়ন করা হচ্ছে এক্সেলে যেকোনো অপারেশন চালানোর জন্য সবচেয়ে কার্যকর, দ্রুততম এবং নিরাপদ পদ্ধতি। এই নিবন্ধে, আমরা আপনাকে অটোফিল্টার চালু আছে কিনা তা পরীক্ষা করার জন্য 4টি সহজ এবং দ্রুত উপায় দেখাব VBA ম্যাক্রো সহ Excel-এ .
ওয়ার্কবুক ডাউনলোড করুন
আপনি এখান থেকে বিনামূল্যে অনুশীলন এক্সেল ওয়ার্কবুক ডাউনলোড করতে পারেন।
এক্সেলে স্বয়ংক্রিয় ফিল্টার চালু আছে কিনা তা পরীক্ষা করার জন্য VBA এর সাথে 4টি দ্রুত উপায়
এই বিভাগটি অনুসরণ করে, আপনি কীভাবে অটোফিল্টার চালু আছে কিনা তা পরীক্ষা করবেন শিখবেন৷ এক্সেল এ VBA এর সাথে ৪টি ভিন্ন উপায়ে।
উপরে উদাহরণ ডেটাসেট যে এই নিবন্ধটি পদ্ধতিগুলি বর্ণনা করতে অনুসরণ করবে৷
৷1. এক্সেল ওয়ার্কশীটে অটোফিল্টার চালু বা বন্ধ আছে কিনা তা পরীক্ষা করতে VBA এম্বেড করুন
এই বিভাগে, আপনি শিখবেন কিভাবে একটি এক্সেল ওয়ার্কশীটের জন্য অটোফিল্টার চালু আছে কিনা তা পরীক্ষা করবেন VBA এর সাথে . কার্যকর করার পদক্ষেপগুলি নীচে দেওয়া হল।
পদক্ষেপ:
- শুরুতে, Alt + F11 টিপুন আপনার কীবোর্ডে বা ট্যাবে যান ডেভেলপার -> ভিজ্যুয়াল বেসিক ভিজ্যুয়াল বেসিক এডিটর খুলতে .
- এরপর, পপ-আপ কোড উইন্ডোতে, মেনু বার থেকে, ঢোকান -> মডিউল ক্লিক করুন .
- তারপর, কপি করুন নিম্নলিখিত কোড এবং পেস্ট করুন এটি কোড উইন্ডোতে।
Sub AutoFilterCheck()
If ActiveSheet.AutoFilterMode = True Then
MsgBox "Auto Filter is turned on"
Else
MsgBox "Auto Filter is turned off"
End If
End Sub
আপনার কোড এখন চালানোর জন্য প্রস্তুত৷
৷
- এখন, F5 টিপুন আপনার কীবোর্ডে বা মেনু বার থেকে চালান -> সাব/ইউজারফর্ম চালান নির্বাচন করুন . এছাড়াও আপনি ছোট রান আইকনে ক্লিক করতে পারেন৷ ম্যাক্রো চালানোর জন্য সাব-মেনু বারে।
সফল কোড এক্সিকিউশনের পরে, ফলাফলটি দেখতে নিম্নলিখিত চিত্রটি দেখুন।
এখন, উপরের চিত্রটি দেখুন। যদিও ডেটাসেটে কোনো ফিল্টার তীর নেই, Excel MsgBox আমাদের বলছে যে এই শীটে অটোফিল্টার চালু আছে .
VBA বাস্তবায়ন করা হচ্ছে এই ধরনের পরিস্থিতির জন্য সত্যিই সুবিধাজনক যেখানে কোন অপারেশন সম্পর্কে অনিশ্চয়তা আছে; VBA ম্যাক্রো আপনাকে সঠিক ফলাফল বের করতে সাহায্য করে এমনকি যখন আপনার চোখ সেগুলি দেখতে পায় না।
VBA কোড ব্যাখ্যা
If ActiveSheet.AutoFilterMode = True Then
MsgBox "Auto Filter is turned on"
Else
MsgBox "Auto Filter is turned off"
End If
কোডের এই অংশটি বোঝায় যদি স্বয়ংক্রিয় ফিল্টার মোড সক্রিয় শীটের জন্য সত্য হয় , তারপর “অটো ফিল্টার চালু আছে ফেরত দেয় ” Excel MsgBox-এ বার্তা; অন্যথায় , এটি "অটো ফিল্টার বন্ধ করা হয়েছে ছুড়ে দেয়৷ বার্তা৷
৷আরো পড়ুন: এক্সেল ভিবিএ:অটোফিল্টারটি সরান যদি এটি থাকে (7 উপায়)
2. VBA কোড ডিবাগ করুন এবং সক্রিয় শীটে মোট অটোফিল্টারের গণনা পান
এই বিভাগটি আপনাকে দেখাবে কিভাবে আপনি কোড ডিবাগ করতে পারেন এবং কতগুলি অটোফিল্টার গণনা করতে পারেন৷ এক্সেল শীটে আছে। কোডটি কার্যকর করার পরে, এটি ফলাফলটিকে তাত্ক্ষণিক উইন্ডোতে ফেলে দেবে৷ এক্সেল VBA এর .
এটি পেতে পদক্ষেপগুলি নীচে দেওয়া হল৷
৷পদক্ষেপ:
- আগের মতই, ভিজ্যুয়াল বেসিক এডিটর খুলুন ডেভেলপার থেকে ট্যাব এবং ঢোকান একটি মডিউল কোড উইন্ডোতে।
- তারপর, কপি করুন নিম্নলিখিত কোড এবং পেস্ট করুন এটি কোড উইন্ডোতে।
Sub CountAutoFilters()
Dim iCount As Long
If ActiveSheet.AutoFilterMode = True Then iCount = 1
Debug.Print "AutoFilterMode Count: " & iCount
End Sub
আপনার কোড এখন চালানোর জন্য প্রস্তুত৷
৷
- তার পরে, চালান ম্যাক্রো যেমন আমরা আপনাকে উপরের বিভাগে দেখিয়েছি। ফলাফল নিচের ছবিতে দেখানো হয়েছে।
আপনি উপরের ছবিতে দেখতে পাচ্ছেন, তাৎক্ষণিক উইন্ডোতে৷ আপনি সক্ষম অটোফিল্টারের মোট গণনা পাবেন আপনার ওয়ার্কশীটে।
VBA কোড ব্যাখ্যা
Dim iCount As Long
ঘোষণা করা হচ্ছে ভেরিয়েবল .
If ActiveSheet.AutoFilterMode = True Then iCount = 1
Debug.Print "AutoFilterMode Count: " & iCount
কোডের এই কয়েকটি লাইনের অর্থ হল, যদি সক্রিয় শীটের জন্য স্বয়ংক্রিয় ফিল্টার মোড সত্য হয় , তারপর গণনা শুরু করুন এবং মোট গণনা মুদ্রণ করুন .
আরো পড়ুন: এক্সেলের একই ক্ষেত্রে একাধিক মাপকাঠি সহ VBA থেকে স্বয়ংক্রিয় ফিল্টার (4টি পদ্ধতি)
3. এক্সেলে একটি নির্দিষ্ট কলাম ফিল্টার করা আছে কিনা তা পরীক্ষা করতে VBA প্রয়োগ করুন
ধরুন আপনি একটি নির্দিষ্ট কলাম কিনা তা পরীক্ষা করতে চান৷ আপনার এক্সেল স্প্রেডশীটে ফিল্টার করা আছে বা না VBA এর সাথে .
আসুন এটি কীভাবে করবেন তার পদক্ষেপগুলি দেখুন।
পদক্ষেপ:
- আগে দেখানো হয়েছে, ভিজ্যুয়াল বেসিক এডিটর খুলুন ডেভেলপার থেকে ট্যাব এবং ঢোকান একটি মডিউল কোড উইন্ডোতে।
- তারপর, কপি করুন নিম্নলিখিত কোড এবং পেস্ট করুন এটি কোড উইন্ডোতে।
Sub CheckColumnFilter()
Dim iSheet As Worksheet
Set iSheet = ActiveSheet
If iSheet.AutoFilter.Filters(2).On Then
MsgBox "Column B is filtered."
Else
MsgBox "Column B is not filtered."
End If
End Sub
আপনার কোড এখন চালানোর জন্য প্রস্তুত৷
৷
- পরে, চালান ম্যাক্রো এবং আউটপুট দেখতে নিম্নলিখিত চিত্রটি দেখুন।
এখন, উপরের চিত্রটি বিবেচনা করুন। যদিও আপনি দেখতে পাচ্ছেন যে কলাম B-এ একটি ফিল্টার তীর রয়েছে৷ , ম্যাক্রো আমাদের বলছে যে সেখানে নেই. সুতরাং, সফল কোড এক্সিকিউশনের পরে, আমরা বলতে পারি যে কলাম B স্বয়ংক্রিয় ফিল্টার করা হয়নি .
VBA কোড ব্যাখ্যা
Dim iSheet As Worksheet
ঘোষণা করা হচ্ছে ভেরিয়েবল ওয়ার্কশীট এর জন্য .
Set iSheet = ActiveSheet
সক্রিয় শীট সংরক্ষণ করুন ঘোষিত পরিবর্তনশীলে।
If iSheet.AutoFilter.Filters(2).On Then
MsgBox "Column B is filtered."
Else
MsgBox "Column B is not filtered."
End If
কোডের এই অংশটি বোঝায় যদি কলাম 2 বা কলাম B-এর স্বয়ংক্রিয় ফিল্টার সক্রিয় শীটের জন্য সত্য হয় , তারপর “কলাম B ফিল্টার করা হয়েছে৷ প্রদান করে৷ ” Excel MsgBox-এ বার্তা; অন্যথায় , এটি "কলাম B ফিল্টার করা হয় না৷ নিক্ষেপ করে৷ বার্তা৷
৷আরো পড়ুন: এক্সেলে VBA এর সাথে একটি নির্দিষ্ট মানের সমান নয় এমন মানগুলি কীভাবে অটোফিল্টার করবেন
4. এক্সেল ওয়ার্কবুকতে সক্ষম অটোফিল্টার চেক করতে VBA ম্যাক্রো
এই বিভাগে, আপনি শিখবেন কিভাবে আপনি একটি নির্দিষ্ট এক্সেল ওয়ার্কবুকে একটি শীটের জন্য সক্রিয় বা নিষ্ক্রিয় অটোফিল্টার পরীক্ষা করতে পারেন .
কার্যকর করার পদক্ষেপগুলি নীচে দেওয়া হল।
পদক্ষেপ:
- প্রথমে, ভিজ্যুয়াল বেসিক এডিটর খুলুন ডেভেলপার থেকে ট্যাব এবং ঢোকান একটি মডিউল কোড উইন্ডোতে।
- তারপর, কপি করুন নিম্নলিখিত কোড এবং পেস্ট করুন এটি কোড উইন্ডোতে।
Sub CheckAutofilterSheet()
Dim z As Double
For z = 1 To ThisWorkbook.Sheets.Count
If ThisWorkbook.Sheets(z).AutoFilterMode Then
MsgBox ThisWorkbook.Sheets(z).Name & " has enabled Autofilter"
End If
Next
End Sub
আপনার কোড এখন চালানোর জন্য প্রস্তুত৷
৷
- পরবর্তী, চালান ম্যাক্রো এখন, ফলাফল দেখতে নিম্নলিখিত চিত্রটি দেখুন৷
আপনি উপরের ছবিতে দেখতে পাচ্ছেন, আমাদের ওয়ার্কবুকটিতে “ডেটাসেট নামে একটি ওয়ার্কশীট রয়েছে ” এক্সেলের MsgBox আমাদের দেখাচ্ছে যে “ডেটাসেট” শীটে অটোফিল্টার চালু আছে . আপনি একটি নির্দিষ্ট এক্সেল ওয়ার্কবুকে আপনার সমস্ত স্প্রেডশীটের জন্য এই কোডটি সম্পাদন করতে পারেন৷
৷VBA কোড ব্যাখ্যা
Dim z As Double
ঘোষণা করা হচ্ছে ভেরিয়েবল .
For z = 1 To ThisWorkbook.Sheets.Count
শুরু হয় লুপ করা 1ম পত্রক থেকে মোট শীট গণনা বিদ্যমান ওয়ার্কবুকের।
If ThisWorkbook.Sheets(z).AutoFilterMode Then
MsgBox ThisWorkbook.Sheets(z).Name & " has enabled Autofilter"
End If
Next
যদি প্রথম শীটে স্বয়ংক্রিয় ফিল্টার মোড চালু থাকে , তারপর MsgBox-এ বার্তাটি নিক্ষেপ করুন৷ . এর পরে, কোডটি শর্তটি শেষ করে এবং পরবর্তী শীটে যায় পুনরাবৃত্তি সঞ্চালন. এটি সমস্ত পত্রক গণনা এ না পৌঁছা পর্যন্ত এটি করতে থাকে৷ বর্তমান ওয়ার্কবুকের।
আরো পড়ুন: এক্সেল VBA এর মাধ্যমে কিভাবে স্বতঃফিল্টার এবং দৃশ্যমান সারিগুলি অনুলিপি করবেন
উপসংহার
উপসংহারে, এই নিবন্ধটি আপনাকে 4টি সহজ এবং দ্রুত উপায় দেখিয়েছে কিভাবে অটোফিল্টার চালু আছে কিনা তা পরীক্ষা করতে হয় VBA ম্যাক্রো সহ Excel-এ . আমি আশা করি এই নিবন্ধটি আপনার জন্য খুব উপকারী হয়েছে. বিষয় সম্পর্কিত যেকোনো প্রশ্ন নির্দ্বিধায় করুন।
সম্পর্কিত প্রবন্ধ
- [ফিক্স]:রেঞ্জ ক্লাসের অটোফিল্টার পদ্ধতি ব্যর্থ (5টি সমাধান)
- VBA অটোফিল্টার:সবচেয়ে ছোট থেকে বড় (3টি পদ্ধতি) সাজান