/ / एक्सेल वीबीए इंटरएक्टिव उपयोगकर्ताform

एक्सेल वीबीए इंटरएक्टिव यूजरफॉर्म

नीचे हम एक कार्यक्रम देखेंगे एक्सेल VBA जो एक बनाता है इंटरैक्टिव उपयोगकर्ताफॉर्म। उपयोगकर्ताफॉर्म हम इस प्रकार दिखने जा रहे हैं:

एक्सेल वीबीए इंटरएक्टिव यूजरफॉर्म

स्पष्टीकरण: जब भी आप आईडी टेक्स्ट बॉक्स में कोई मान डालते हैं, तो एक्सेल वीबीए संबंधित रिकॉर्ड लोड करता है। जब आप संपादन / जोड़ें बटन पर क्लिक करते हैं, तो एक्सेल वीबीए शीट पर रिकॉर्ड संपादित करता है या जब आईडी अभी तक मौजूद नहीं है तो रिकॉर्ड जोड़ता है। साफ़ बटन सभी टेक्स्ट बॉक्स साफ़ करता है। बंद बटन उपयोगकर्ताफॉर्म बंद कर देता है।

इस उपयोगकर्ताफॉर्म को बनाने के लिए, निम्न चरणों को निष्पादित करें।

1. विजुअल बेसिक एडिटर खोलें। यदि प्रोजेक्ट एक्सप्लोरर दिखाई नहीं दे रहा है, तो देखें, प्रोजेक्ट एक्सप्लोरर पर क्लिक करें।

2. सम्मिलित करें, उपयोगकर्ताफॉर्म पर क्लिक करें। यदि टूलबॉक्स स्वचालित रूप से प्रकट नहीं होता है, तो व्यू, टूलबॉक्स पर क्लिक करें। आपकी स्क्रीन नीचे के रूप में स्थापित की जानी चाहिए।

एक्सेल वीबीए में उपयोगकर्ताफॉर्म स्क्रीन सेटअप

3। लेबल, टेक्स्ट बॉक्स (शीर्ष पर सबसे पहले, पहले के नीचे दूसरा, और इसी तरह) और कमांड बटन जोड़ें। एक बार यह पूरा हो जाने के बाद, परिणाम पहले दिखाए गए उपयोगकर्ताफॉर्म की तस्वीर के अनुरूप होना चाहिए। उदाहरण के लिए, टूलबॉक्स से टेक्स्टबॉक्स पर क्लिक करके टेक्स्ट बॉक्स नियंत्रण बनाएं। इसके बाद, आप उपयोगकर्ताफॉर्म पर एक टेक्स्ट बॉक्स खींच सकते हैं।

4। आप नियंत्रणों के नाम और कैप्शन बदल सकते हैं। एक्सेल वीबीए कोड में नामों का उपयोग किया जाता है। कैप्शन वे हैं जो आपकी स्क्रीन पर दिखाई देते हैं। नियंत्रणों के नाम बदलने के लिए यह अच्छा अभ्यास है, लेकिन यह यहां जरूरी नहीं है क्योंकि हमारे पास इस उदाहरण में केवल कुछ नियंत्रण हैं। लेबल, टेक्स्ट बॉक्स और कमांड बटन के कैप्शन को बदलने के लिए, व्यू, प्रॉपर्टी विंडो पर क्लिक करें और प्रत्येक नियंत्रण पर क्लिक करें।

5. उपयोगकर्ताफॉर्म दिखाने के लिए, अपनी वर्कशीट पर एक कमांड बटन रखें और निम्न कोड लाइन जोड़ें:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

अब हम सब UserForm_Initialize बनाने जा रहे हैं। जब आप उपयोगकर्ताफॉर्म के लिए शो विधि का उपयोग करते हैं, तो यह उप स्वचालित रूप से निष्पादित हो जाएगा।

6. विजुअल बेसिक एडिटर खोलें।

7. प्रोजेक्ट एक्सप्लोरर में, UserForm1 पर राइट क्लिक करें और फिर कोड देखें पर क्लिक करें।

8. बाएं ड्रॉप-डाउन सूची से उपयोगकर्ताफॉर्म चुनें। सही ड्रॉप-डाउन सूची से प्रारंभ करें चुनें।

9. निम्नलिखित कोड लाइन जोड़ें:

Private Sub UserForm_Initialize()

TextBox1.SetFocus

End Sub

स्पष्टीकरण: यह कोड लाइन पहले टेक्स्ट बॉक्स पर फ़ोकस सेट करती है क्योंकि यह वह जगह है जहां हम उपयोगकर्ताफॉर्म लोड होने पर प्रारंभ करना चाहते हैं।

हमने अब उपयोगकर्ताफॉर्म का पहला हिस्सा बनाया है। हालांकि यह पहले से ही साफ दिखता है, फिर भी जब हम आईडी टेक्स्ट बॉक्स में कोई मान दर्ज करते हैं या जब हम कमांड बटन में से किसी एक पर क्लिक करते हैं तो कुछ भी नहीं होगा।

10. प्रोजेक्ट एक्सप्लोरर में, UserForm1 पर राइट क्लिक करें और फिर कोड देखें पर क्लिक करें।

11. बाएं ड्रॉप-डाउन सूची से टेक्स्टबॉक्स 1 चुनें। दाएं ड्रॉप-डाउन सूची से बदलें चुनें।

12. निम्नलिखित कोड लाइन जोड़ें:

Private Sub TextBox1_Change()

GetData

End Sub

13. प्रोजेक्ट एक्सप्लोरर में, UserForm1 पर डबल क्लिक करें।

14. संपादन / जोड़ें कमांड बटन पर डबल क्लिक करें।

15. निम्नलिखित कोड लाइन जोड़ें:

Private Sub CommandButton1_Click()

EditAdd

End Sub

16. साफ़ कमांड बटन पर डबल क्लिक करें।

17. निम्नलिखित कोड लाइन जोड़ें:

Private Sub CommandButton2_Click()

ClearForm

End Sub

स्पष्टीकरण: इन सबस्क कॉल अन्य subs हम एक सेकंड में बनाने जा रहे हैं।

18. बंद कमांड बटन पर डबल क्लिक करें।

19. निम्नलिखित कोड लाइन जोड़ें:

Private Sub CommandButton3_Click()

Unload Me

End Sub

स्पष्टीकरण: यह कोड लाइन उपयोगकर्ताफॉर्म को बंद कर देती है।

सबस बनाने का समय सब के बारे में अधिक जानने के लिए आप हमारे फंक्शन और सब अध्याय के माध्यम से जा सकते हैं। यदि आप जल्दी में हैं, तो बस निम्न सब को एक मॉड्यूल में रखें (विजुअल बेसिक एडिटर में, सम्मिलित करें, मॉड्यूल पर क्लिक करें)।

20। सबसे पहले, टाइप इंटीजर के तीन चर और बूलियन प्रकार के एक चर घोषित करें। सामान्य घोषणा अनुभाग (मॉड्यूल के शीर्ष पर) में चर घोषित करें। इस तरह आपको केवल एक बार चर घोषित करना होगा और आप उन्हें एकाधिक subs में उपयोग कर सकते हैं।

Dim id As Integer, i As Integer, j As Integer, flag As Boolean

21. GetData उप जोड़ें।

Sub GetData()

If IsNumeric(UserForm1.TextBox1.Value) Then
    flag = False
    i = 0
    id = UserForm1.TextBox1.Value

    Do While Cells(i + 1, 1).Value <> ""

        If Cells(i + 1, 1).Value = id Then
            flag = True
            For j = 2 To 3
                UserForm1.Controls("TextBox" & j).Value = Cells(i + 1, j).Value
            Next j
        End If

        i = i + 1

    Loop

    If flag = False Then
        For j = 2 To 3
            UserForm1.Controls("TextBox" & j).Value = ""
        Next j
    End If

Else
    ClearForm
End If

End Sub

स्पष्टीकरण: यदि आईडी टेक्स्ट बॉक्स में संख्यात्मक मान होता है, तो एक्सेल वीबीए आईडी के लिए खोज करता है और संबंधित रिकॉर्ड लोड करता है। हम टेक्स्ट बॉक्स के माध्यम से आसानी से लूप करने के लिए नियंत्रण संग्रह का उपयोग करते हैं। यदि एक्सेल वीबीए आईडी नहीं ढूंढ पा रहा है (ध्वज अभी भी गलत है), यह दूसरे और तीसरे पाठ बॉक्स को खाली करता है। यदि आईडी टेक्स्ट बॉक्स में संख्यात्मक मान नहीं है, तो एक्सेल वीबीए ClearForm उप को कॉल करता है।

22. ClearForm उप जोड़ें।

Sub ClearForm()

For j = 1 To 3
    UserForm1.Controls("TextBox" & j).Value = ""
Next j

End Sub

स्पष्टीकरण: एक्सेल वीबीए सभी टेक्स्ट बॉक्स साफ़ करता है।

23. EditAdd सब जोड़ें।

Sub EditAdd()

Dim emptyRow As Long

If UserForm1.TextBox1.Value <> "" Then
    flag = False
    i = 0
    id = UserForm1.TextBox1.Value
    emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

    Do While Cells(i + 1, 1).Value <> ""

        If Cells(i + 1, 1).Value = id Then
            flag = True
            For j = 2 To 3
                Cells(i + 1, j).Value = UserForm1.Controls("TextBox" & j).Value
            Next j
        End If

        i = i + 1

    Loop

    If flag = False Then
        For j = 1 To 3
            Cells(emptyRow, j).Value = UserForm1.Controls("TextBox" & j).Value
        Next j
    End If

End If

End Sub

स्पष्टीकरण: यदि आईडी टेक्स्ट बॉक्स खाली नहीं है, तो एक्सेल वीबीए शीट पर रिकॉर्ड संपादित करता है (रिकॉर्ड को लोड करने के विपरीत जैसा हमने पहले देखा है)। यदि एक्सेल वीबीए आईडी नहीं ढूंढ सकता है (ध्वज अभी भी गलत है), तो यह रिकॉर्ड को खाली खाली पंक्ति में जोड़ता है। परिवर्तनीय खाली पंक्ति पहली खाली पंक्ति है और रिकॉर्ड हर बार बढ़ने पर बढ़ जाती है।

24. विजुअल बेसिक एडिटर से बाहर निकलें, पंक्ति 1 में नीचे दिखाए गए लेबल दर्ज करें और उपयोगकर्ताफॉर्म का परीक्षण करें।

एक्सेल वीबीए इंटरएक्टिव यूजरफॉर्म

यह भी पढ़ें: