एक्सेल में एंबेडेड चेकबॉक्स


0

मैं प्रत्येक कक्ष E2: E30 और F2: F30 में चेक बॉक्स सम्मिलित करना चाहूंगा, जहां प्रत्येक पंक्ति में कॉलम E या स्तंभ F में से किसी एक बॉक्स को चेक किया जाना चाहिए।


वास्तव में मुझे 3 बक्से के चेक बॉक्स चाहिए। E2: E30, F2: F30 और G2: G30 जहां प्रत्येक पंक्ति में एक बॉक्स का चयन किया जाना चाहिए।
ajc009

आप रिबन पर डेवलपर टैब से प्रपत्र के रूप में या ActiveX नियंत्रण के रूप में एक चेक बॉक्स सम्मिलित कर सकते हैं। जब आप चेक बॉक्स चेक (या नहीं) प्राप्त करना चाहते हैं, तो क्या कार्रवाई होती है?
गंवार

"जहां प्रत्येक पंक्ति में एक बॉक्स का चयन किया जाना चाहिए" - चेकबॉक्स की तुलना में एक विकल्प बटन समूह की तरह अधिक लगता है: बस एक "समूह बॉक्स" डालें (डेवलपर टैब-> सम्मिलित करें-> नियंत्रण-> समूह बॉक्स) और फिर तीन विकल्प बटन। वे एक ही सेल करने के लिए सभी लिंक, जैसे E2 और इस होगा या तो 1, 2 या 3. यदि आप वास्तव में प्रत्येक के लिए अतिरिक्त कॉलम की जरूरत है, तो आप इसे इस स्तंभ, जैसे F2 में से तुलना कर सकते हैं: =E2=1, G2 में: =E2=2, आदि
पीटर अल्बर्ट

@ पीटर-अल्बर्ट आपने अपना जवाब नीचे क्यों नहीं पोस्ट किया? यह एक अच्छा जवाब है और अगर इसे नीचे पोस्ट किया जाता है तो इसे स्वीकृत उत्तर के रूप में चुना जा सकता है जिसके लिए आप प्रतिष्ठा प्राप्त करते हैं।
चार्लीआरबी

हां मुझे लगता है कि विकल्प बटन एक बेहतर विकल्प है। मैंने एक विज़ुअल बेसिक मॉड्यूल का उपयोग किया, जो मुझे ऑनलाइन मिला, जिसने अच्छी तरह से काम किया। एकमात्र मुद्दा यह था कि मैं यह पता नहीं लगा सका कि मॉड्यूल को कैसे संपादित किया जाए जो मुझे करने के लिए आवश्यक हो।
ajc009

जवाबों:


1

आपके मामले में, विकल्प बटन का उपयोग करना निश्चित रूप से बेहतर / अधिक व्यावहारिक समाधान है। यदि आपको चेक बॉक्स के साथ एक विकल्प समूह का अनुकरण करने की आवश्यकता है, तो नीचे देखें

विकल्प समूह

मैनुअल तरीका:

  1. एक समूह बॉक्स डालें (डेवलपर टैब-> सम्मिलित करें-> प्रपत्र नियंत्रण-> समूह बॉक्स) - यह एक आयत है जिसमें आप विभिन्न विकल्प बटन डालेंगे
  2. आयत में आपके द्वारा आवश्यक विकल्प बटन रखें (डेवलपर टैब-> डालें-> प्रपत्र नियंत्रण-> विकल्प बटन)
  3. अपने समूह में या तो विकल्प बटन का चयन करें और इसे उस सेल से लिंक करें जिसे - या तो फॉर्मेट कंट्रोल डायलॉग (राइट क्लिक के बाद) या =$E$1सूत्र पट्टी में सरल टाइपिंग द्वारा ।

यह लिंक सेल अब दबाए गए विकल्प बटन की संख्या को धारण करेगा, आपके मामले में यह 1, 2 या 3 हो सकता है। अब आप इसे किसी अन्य फ़ंक्शन के साथ जोड़ सकते हैं INDEX/OFFSET/CHOOSE

वीबीए तरीका

निम्नलिखित दिनचर्या प्रत्येक कोशिका के बगल में एक विकल्प समूह रखेगी:

स्ट्रिंग के रूप में निजी कॉस्ट cStrPrefix = "o_"
डबल = 2 के रूप में निजी कॉस्ट cDblHor क्षैतिजSpacing
डबल = 40 के रूप में निजी कॉस्ट cDblLabelWidth

कार्यपत्रक के रूप में निजी mWS
स्ट्रिंग के रूप में निजी mStrAddr
रेंज के रूप में निजी mRngLink
निजी mVarLabels () वेरिएंट के रूप में
निजी mIntCount पूर्णांक के रूप में

सार्वजनिक उप सबडक्शनओनग्रुपसमूहइनरेंज (रेंज के रूप में रिंगलिंक, _
                         पूर्णांक के रूप में intNumberOfButtons, _
                         ParamArray varLabels () वेरिएंट के रूप में)

    इंटेगर के रूप में मंद intOldCalcMode

    अनुप्रयोग.स्क्रीनयूडेटिंग = गलत
    intOldCalcMode = Application.Calacle
    Application.Calacle = xlCalacleManual

    'इनित चर
    MWS = rngLinks.Worksheet सेट करें
    mIntCount = intNumberOfButtons
    mVarLabels = varLabels

    RngLinks.Cells में प्रत्येक mRngLink के लिए
        mStrAddr = mRngLink.Address

        subDeleteOptionGroup
        subPlaceOptionGroup
        subPlaceOptionButtons

    आगे

    Application.Calacle = intOldCalcMode
    Application.ScreenUpdating = True
अंत उप

निजी उप सबडिटऑप्शनऑग्रुप ()
    डिम आई अस इंटेगर

    त्रुटि फिर से शुरू पर
    I = 1 के लिए mIntCount
        mWS.OptionButtons (cStrPrefix & mStrAddr & "_" & i) .Dillill
    आगे
    mWS.GroupBoxes (cStrPrefix & mStrAddr) .डेली

अंत उप

निजी उप सबडक्शनओपरेशनसमूह ()
    डिम objGroupBox GroupBox के रूप में

    ObjGroupBox = mWS.GroupBoxes.Add (_) सेट करें
        mRngLink.Offset (, 1) .Left, mRngLink.Top, _
        (mIntCount + 2) * cDblHor क्षैतिजSpacing + _
         mIntCount * cDblLabelWidth, _
        mRngLink.Height)
    ObjGroupBox के साथ
        .Characters.Text = ""
        .Name = cStrPrefix & mStrAddr
        .Display3DShading = सच
    के साथ समाप्त करना

अंत उप

निजी उप सबडक्शनऑक्शनबटन ()
    डिम आई अस इंटेगर
    मंद objOptionButton विकल्पबटन के रूप में
    I = 1 के लिए mIntCount
        ObjOptionButton = mWS.OptionButtons सेट करें। जोड़ें (_
            mRngLink.Offset (, 1) .Left _
            + i * cDblHor क्षैतिजSpacing + (i - 1) * cDblLabelWidth, _
            mRngLink.Top, cDblLabelWidth, mRngLink.Height)
        ObjOptionButton के साथ
            .चैक्टर्स। पाठ = mVarLabels (i - 1)
            .Display3DShading = सच
            .Name = cStrPrefix & mStrAddr & "_" & i
            .लिंकडेल = mStrAddr
        के साथ समाप्त करना
    आगे
अंत उप

आप अपने विकल्प बटन को 'सबप्लसऑक्शनगर्गेन्सइंटरेंज शीट्स ("आपकीशीट") चलाकर रख सकते हैं। रेंज ("ई 2: ई 30"), 3, "लेबल 1", "लेबल 2", "लेबल 3"

चेक बॉक्स

यदि आप विकल्प समूह के समान 3 चेकबॉक्स चाहते हैं, तो आपको तीन बटन / विकल्पों में से प्रत्येक के लिए एक सेल / कॉलम की आवश्यकता होगी। एक उदाहरण में, सेल A1, B1, C1 3 चेकबॉक्स से जुड़े होते हैं, जो एक समूह के होते हैं।

पारस्परिक अनन्य स्थिति को प्राप्त करने के लिए, आपको प्रत्येक विकल्प बटन पर निम्न मैक्रो असाइन करना होगा:

सार्वजनिक उप सबचार्जचेकबॉक्स ()
    चेक बॉक्स के रूप में मंद सी.बी.
    मंद rngTarget रेंज के रूप में
    इंटेगर के रूप में मंद इंट्रोल

    सेट cb = ActiveSheet.CheckBoxes (Application.Caller)
    RngTarget = ActiveSheet.Range (cb.LinkedCell) सेट करें

    'अनचाहे रोकें
    अगर rngTarget.Value = फिर गलत
        rngTarget.Value = सच
        उप से बाहर निकलें
    अगर अंत

    'पहले चयनित चेकबॉक्स को अचयनित करें
    IntCol = 1 To 3 के लिए
        अगर rngTarget.Column intCol तब
            ActiveSheet.Cells (rngTarget.Row, intCol) ।Value = गलत
        अगर अंत
    अगला intCol

अंत उप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.