एमएस एक्सेल में मल्टीपल डिपेंडेंट ड्रॉप-डाउन बनाना हमेशा से एक चुनौती रही है। दो ड्रॉप-डाउन सूचियों के बीच निर्भरता या संबंध होने पर हमें इस तरह की ड्रॉप-डाउन सूची की आवश्यकता होती है। हम आम तौर पर इसे विभिन्न फ़ार्मुलों . का उपयोग करके बनाते हैं या एक्सेल में उपयुक्त विकल्प बदलना। हालाँकि, एक्सेल VBA कोड का उपयोग करके कई ड्रॉप-डाउन सूचियाँ बनाने के कुछ आसान तरीके हैं। इस लेख में, मैं एक्सेल में वीबीए कोड का उपयोग करके कई ड्रॉप-डाउन सूचियां बनाने के विभिन्न तरीके दिखाऊंगा।
और पढ़ें: एक्सेल (स्वतंत्र और आश्रित) में ड्रॉप डाउन सूची कैसे बनाएं
एक्सेल में डिपेंडेंट ड्रॉप-डाउन सूचियां क्या हैं?
मुख्य प्रक्रिया में जाने से पहले आइए जानें कि एक्सेल में एक आश्रित ड्रॉप-डाउन सूची क्या है। जब दो या दो से अधिक ड्रॉप-डाउन सूचियों के बीच निर्भरता होती है तो हम उन्हें एक्सेल में आश्रित ड्रॉप-डाउन सूचियां कहते हैं। नीचे दी गई तस्वीर निर्भर ड्रॉप-डाउन सूची के बारे में एक स्पष्ट अवधारणा का प्रतिनिधित्व करती है।
जैसा कि हम यहां देख सकते हैं कि दो ड्रॉप-डाउन सूचियां श्रेणी और भोजन पूरी तरह से दो निर्भर ड्रॉप-डाउन सूचियां हैं। श्रेणी चयन के आधार पर हम यहां भोजन की सूची को परिभाषित करते हैं। इस प्रकार, एकाधिक कैस्केडिंग ड्रॉप-डाउन सूचियां कैसे काम करती हैं।
और पढ़ें: एक्सेल में डायनामिक डिपेंडेंट ड्रॉप डाउन लिस्ट कैसे बनाएं
एकाधिक निर्भर ड्रॉप-डाउन सूची एक्सेल VBA बनाने के 3 तरीके
1. Excel VBA में ड्रॉप-डाउन सूची में एकाधिक चयन कैसे करें
मान लें कि हमारे पास प्रोजेक्ट नाम और प्रोजेक्ट सदस्य नाम की दो सूचियां हैं। प्रत्येक प्रोजेक्ट के लिए, हम ड्रॉप-डाउन सूची का उपयोग करके एक या एकाधिक सदस्यों को असाइन करेंगे।
चरण 1: डेवलपर . पर जाएं टैब खोलें और विजुअल बेसिक खोलें (शॉर्टकट Alt + F11 )
चरण 2: संबंधित VBAProject मेनू से संबंधित वर्कशीट पर जाएं।
चरण 3: अब VBA कंसोल में निम्न कोड लिखें
कोड:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Old_value As String
Dim New_value As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Not Intersect(Target, Range("C4:C11")) Is Nothing Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
New_value = Target.Value
Application.Undo
Old_value = Target.Value
If Old_value = "" Then
Target.Value = New_value
Else
If InStr(1, Old_value, New_value) = 0 Then
Target.Value = Old_value & ", " & New_value
Else:
Target.Value = Old_value
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
चरण 4: अब प्रोजेक्ट सदस्य कॉलम में एक से अधिक नामों का चयन करें
चरण 5: सभी सेल ड्रॉप-डाउन सूची से कई चयन कर सकते हैं
और पढ़ें: एक्सेल में ड्रॉप डाउन सूची से एकाधिक चयन कैसे करें
2. एक्सेल वीबीए में एकाधिक निर्भर ड्रॉप-डाउन सूची बनाएं
आइए सब्जियों, फलों और डेयरी उत्पादों जैसे विभिन्न श्रेणी के खाद्य पदार्थों का एक डेटासेट रखें। अब हम खाद्य पदार्थों को उनकी श्रेणी के अनुसार खोजना चाहते हैं। जैसे अगर हम फलों के रूप में श्रेणी चुनते हैं तो खाद्य कॉलम में उपलब्ध वस्तुएं रास्पबेरी, खुबानी, आड़ू, आम होनी चाहिए। इसलिए खाने की चीजें कैटेगरी के हिसाब से ही उपलब्ध होनी चाहिए। श्रेणी और भोजन के बीच एक निर्भरता है।
चरण 1: विधि 1 के समान चरणों का पालन करके VBA कंसोल खोलें (चरण 1 और चरण 2 ) फिर निम्नलिखित कोड लिखें
कोड:
सब्जी ड्रॉप-डाउन सूची बनाने के लिए:
Sub Vegetable_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Vegetable_List"
End Sub
फल ड्रॉप-डाउन सूची बनाने के लिए:
Sub Fruit_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Fruits_list"
End Sub
डेयरी उत्पाद ड्रॉप-डाउन सूची बनाने के लिए:
Sub Dairy_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Dairy_Product_List"
End Sub
इस भाग में, हम अलग-अलग खाद्य पदार्थों की सूची बना रहे हैं और उन्हें ड्रॉप-डाउन सूची में सहेज रहे हैं। यह सूची C4:C6 . में उपलब्ध होगी रेंज।
चरण 2: अब हमें रेंज के लिए मुख्य फंक्शन लिखने की जरूरत है B4:B6
कोड:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("B4:B6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="Vegetable_List,Fruits_list,Dairy_Product_List"
If Range("B4:B6").Value = "Vegetable_List" Then
Call Vegetable_List
ElseIf Range("B4:B6").Value = "Fruits_list" Then
Call Fruit_List
ElseIf Range("B4:B6").Value = "Dairy_Product_List" Then
Call Dairy_List
Else
End If
कोड स्पष्टीकरण
- यहां हम B4:B6 . में श्रेणी के लिए नामित एक और सूची बना रहे हैं श्रेणी, जिसमें खाद्य श्रेणी के नाम शामिल होंगे।
- फिर सूची के मूल्यों की जाँच कर रहे हैं और उन्हें उनके आइटम के अनुसार वर्गीकृत कर रहे हैं। इसके लिए अगर और है कथन का प्रयोग किया जाता है।
- अगर हमें कोई मेल खाता हुआ नाम मिलता है, तो हमने कॉलबैक विधि का उपयोग करके सूची बनाने वाले फ़ंक्शन को कॉल किया। पसंद करें
अगर रेंज(“B4:B6”).Value =“Vegetable_List” तब
वेजिटेबल_लिस्ट को कॉल करें
- यहां अगर सेल के मान Vegetable_List . से मेल खाते हैं पाठ, फिर हम Vegetable_List . को कॉल करेंगे सब्जी सूची बनाने और दिखाने के लिए कार्य।
तो, हमारा पूरा कोड इस तरह होगा:
चरण 3: अब वर्कशीट पर जाएं और ड्रॉप-डाउन सूची से किसी भी श्रेणी का चयन करें
चरण 4: फिर संबंधित आइटम फ़ूड कॉलम पर उपलब्ध होंगे
चरण 5: अंतिम आउटपुट इस तरह होगा:
3. एक्सेल VBA में एकाधिक आश्रित ड्रॉप-डाउन सूची को साफ़ करना
पिछले खंड में, हमने केवल यह देखा है कि हम एक्सेल में संबंधित मिलान सूची कैसे प्राप्त कर सकते हैं। लेकिन कभी-कभी कुछ बेमेल चयन हो सकते हैं जो स्वचालित रूप से नहीं हटाए जाएंगे। हम इस तरह की समस्या को रोकने के लिए फॉर्मूला तैयार कर सकते हैं।
पहला ड्रॉपडाउन में चयन करने के बाद, आश्रित सेल को साफ़ करने के लिए मैक्रो का उपयोग करना एक अन्य विकल्प है। यह बेमेल चयनों को रोकेगा।
चरण 1: विधि 1 के समान चरणों का पालन करके VBA कंसोल खोलें (चरण 1 और चरण 2 ) फिर निम्नलिखित कोड लिखें
कोड:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 Then
If Target.Validation.Type = 3 Then
Application.EnableEvents = False
Target.Offset(0, 1).ClearContents
End If
End If
exitHandler:
Application.EnableEvents = True
Exit Sub
End Sub
चरण 2: अब भोजन . में से कोई भी आइटम चुनें कॉलम और श्रेणी . से किसी भी भिन्न श्रेणी का चयन करने का प्रयास करें और देखें क्या होता है
पहले
दूसरा
अंतिम आउटपुट
और पढ़ें: एक्सेल में ड्रॉप-डाउन सूची कैसे निकालें
याद रखने योग्य बातें
सामान्य त्रुटियाँ | जब वे दिखाई देते हैं |
---|---|
सूची को हटाने में असमर्थ | डेटा सत्यापन में, यदि अनुमति दें सूची के बराबर नहीं है और स्रोत सही ढंग से नहीं चुना गया है तो ड्रॉप-डाउन सूची को हटाया नहीं जा सकता है, या आप सूची को हटाने के लिए वीबीए कोड का उपयोग करते हैं। |
अपडेट वैल्यू प्रॉब्लम | आम तौर पर, निर्भर ड्रॉप-डाउन सूचियों में, यदि कोई बेमेल मान है, तो यह स्वचालित रूप से अपडेट नहीं होगा। मान को स्वचालित रूप से अपडेट करने के लिए हम फॉर्मूला या वीबीए कोड (इस आलेख में विधि 3) का उपयोग कर सकते हैं। |
निष्कर्ष
एक्सेल VBA कई आश्रित ड्रॉप-डाउन सूचियों को बनाने या उनमें हेरफेर करने के ये कुछ तरीके हैं। मैंने सभी विधियों को उनके संबंधित उदाहरणों के साथ दिखाया है लेकिन कई अन्य पुनरावृत्तियां भी हो सकती हैं। मैंने प्रयुक्त कार्यों के मूल सिद्धांतों पर भी चर्चा की है। यदि आपके पास इसे प्राप्त करने का कोई अन्य तरीका है, तो कृपया इसे बेझिझक हमारे साथ साझा करें।
आगे की रीडिंग
- एक्सेल में एकाधिक कॉलम में ड्रॉप डाउन सूची कैसे बनाएं (3 तरीके)
- चयन के आधार पर एक्सेल ड्रॉप डाउन सूची
- Excel में ड्रॉप-डाउन सूची बनाने के लिए IF स्टेटमेंट का उपयोग कैसे करें
- एक्सेल में किसी अन्य शीट से ड्रॉप डाउन सूची बनाएं (2 तरीके)
- एक्सेल में ड्रॉप-डाउन सूची को कैसे संपादित करें (4 बुनियादी दृष्टिकोण)
- एक्सेल में ड्रॉप डाउन सूची के साथ VLOOKUP