यदि आप डेटा सत्यापन सूची से निपट रहे हैं, तो आप वर्कशीट_Change ईवेंट का उपयोग कर सकते हैं। डेटा सत्यापन के साथ शीट पर राइट क्लिक करें और व्यू कोड चुनें। फिर इसमें टाइप करें:
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Value
End Sub
यदि आप ActiveX comboboxes से निपट रहे हैं, तो यह थोड़ा और जटिल है। घटनाओं को हुक करने के लिए आपको एक कस्टम क्लास मॉड्यूल बनाना होगा। सबसे पहले, CComboEvent नामक एक क्लास मॉड्यूल बनाएं और इसमें यह कोड डालें।
Public WithEvents Cbx As MSForms.ComboBox
Private Sub Cbx_Change()
MsgBox Cbx.Value
End Sub
अगला, CComboEvents नामक एक और क्लास मॉड्यूल बनाएं। यह हमारे सभी CComboEvent उदाहरणों को पकड़ लेगा और उन्हें दायरे में रखेगा। इस कोड को CComboEvents में रखें।
Private mcolComboEvents As Collection
Private Sub Class_Initialize()
Set mcolComboEvents = New Collection
End Sub
Private Sub Class_Terminate()
Set mcolComboEvents = Nothing
End Sub
Public Sub Add(clsComboEvent As CComboEvent)
mcolComboEvents.Add clsComboEvent, clsComboEvent.Cbx.Name
End Sub
अंत में, मानक मॉड्यूल बनाएं (क्लास मॉड्यूल नहीं)। आपको अपने सभी comboboxes को कक्षा मॉड्यूल में रखने के लिए कोड की आवश्यकता होगी। आप इसे Auto_Open प्रक्रिया में डाल सकते हैं, इसलिए जब भी कार्यपुस्तिका खोली जाती है तब यह होता है, लेकिन यह आपके ऊपर है।
आपको CComboEvents का उदाहरण रखने के लिए एक सार्वजनिक चर की आवश्यकता होगी। इसे सार्वजनिक बनाना इसे और उसके सभी बच्चों को गुंजाइश में रखेगा। आपको उन्हें दायरे में चाहिए ताकि घटनाएं ट्रिगर हो जाएं। प्रक्रिया में, सभी comboboxes के माध्यम से पाश, प्रत्येक के लिए एक नया CComboEvent उदाहरण बनाने, और CComboEvents को जोड़ने के लिए।
Public gclsComboEvents As CComboEvents
Public Sub AddCombox()
Dim oleo As OLEObject
Dim clsComboEvent As CComboEvent
Set gclsComboEvents = New CComboEvents
For Each oleo In Sheet1.OLEObjects
If TypeName(oleo.Object) = "ComboBox" Then
Set clsComboEvent = New CComboEvent
Set clsComboEvent.Cbx = oleo.Object
gclsComboEvents.Add clsComboEvent
End If
Next oleo
End Sub
अब, जब भी एक combobox बदल जाता है, घटना आग लग जाएगी और, इस उदाहरण में, एक संदेश बॉक्स दिखाएगा।
आप https://www.dropbox.com/s/sfj4kyzolfy03qe/ComboboxEvents.xlsm
पर एक उदाहरण देख सकते क्या आप उन कोशिकाओं में 'मान्यता' विकल्प होता है मतलब है ?? एक असली combobox नहीं है जो एक आकार/रूप वस्तु है ... –
@KazJaw इस सवाल को वास्तव में स्पष्टीकरण की आवश्यकता है :) यदि ओपी में "हजारों" comboboxes है, तो उसे हजारों ईवेंट हैंडलर की आवश्यकता होगी। अन्यथा, अगर वे केवल सत्यापन विकल्प हैं, तो 'वर्कशीट_Change' हैंडलर चाल करेगा। –
@ डेविड ज़ेमेन्स, आखिरकार ... आप सही हैं :) इसलिए, मुझे लगता है कि आपकी टिप्पणी में और नीचे (उपयोगकर्ता @62203626 से) –