एक्सेल में दोहराए जाने वाले कार्यों को स्वचालित करने के लिए विजुअल बेसिक एक उत्कृष्ट भाषा है। अत्यधिक कार्यात्मक उपयोगकर्ता फ़ॉर्म बनाकर अपने स्वचालन को एक पायदान ऊपर ले जाने की कल्पना करें जो अंतिम उपयोगकर्ताओं के लिए भी सुव्यवस्थित दिखते हैं।

VBA में उपयोगकर्ता प्रपत्र आपको एक खाली कैनवास के साथ प्रस्तुत करते हैं; आप किसी भी समय अपनी आवश्यकताओं को पूरा करने के लिए प्रपत्रों को डिज़ाइन और व्यवस्थित कर सकते हैं।

इस गाइड में, आप एक छात्र-आधारित डेटा एंट्री फॉर्म बनाना सीखेंगे जो लिंक की गई एक्सेल शीट में प्रासंगिक जानकारी को कैप्चर करता है।

एक्सेल वीबीए के साथ एक यूजर फॉर्म बनाना

एक नई एक्सेल कार्यपुस्तिका खोलें और अपना डेटा-एंट्री फॉर्म बनाना शुरू करने से पहले कुछ प्रारंभिक चरणों का पालन करें।

अपनी कार्यपुस्तिका को वांछित नाम से सहेजें; फ़ाइल के प्रकार को a. में बदलना न भूलें एक्सेल मैक्रो-सक्षम कार्यपुस्तिका.

संबंधित:एक्सेल टिप्स और ट्रिक्स सीखने के लिए वेबसाइट और ब्लॉग

इस कार्यपुस्तिका में निम्नलिखित नामों के साथ दो पत्रक जोड़ें:

  1. पत्रक 1: घर
  2. पत्रक2:छात्र डेटाबेस

इन नामों को अपनी आवश्यकता के अनुसार बदलने के लिए स्वतंत्र महसूस करें।

instagram viewer

में घर पत्रक, उपयोगकर्ता प्रपत्र मैक्रो को नियंत्रित करने के लिए एक बटन जोड़ें। के पास जाओ डेवलपर टैब और पर क्लिक करें बटन से विकल्प डालने ड्रॉप डाउन सूची। बटन को शीट पर कहीं भी रखें।

एक बार बटन लगाने के बाद, उसका नाम बदलें। उस पर राइट-क्लिक करें, और पर क्लिक करें नया प्रपत्र दिखाने के लिए एक नया मैक्रो असाइन करने के लिए।

संपादक विंडो में निम्न कोड दर्ज करें:

उप बटन1_क्लिक करें ()
उपयोगकर्ता प्रपत्र। प्रदर्शन
अंत उप

एक बार घर तथा छात्र डेटाबेस शीट तैयार हैं, अब उपयोगकर्ता फॉर्म को डिजाइन करने का समय है। पर नेविगेट करें डेवलपर टैब, और पर क्लिक करें मूल दृश्य संपादक खोलने के लिए। वैकल्पिक रूप से, आप दबा सकते हैं एएलटी+एफ11 संपादक विंडो खोलने के लिए।

पर क्लिक करें डालने टैब और चुनें userform.

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

टूलबॉक्स से, चुनें ढांचा विकल्प। इसे उपयोगकर्ता प्रपत्र में खींचें और इसका आकार बदलें।

में (नाम) विकल्प, आप फ्रेम का नाम बदल सकते हैं। नाम को सामने के छोर पर दिखाने के लिए, आप में नाम बदल सकते हैं शीर्षक स्तंभ।

अगला, चुनें लेबल टूलबॉक्स से विकल्प चुनें और इस फ्रेम के भीतर दो लेबल डालें। पहले वाले का नाम बदलें आवेदन संख्या और दूसरा as स्टूडेंट आईडी.

वही नामकरण तर्क लागू होता है; के माध्यम से नाम बदलें शीर्षक के भीतर विकल्प गुण खिड़की। सुनिश्चित करें कि आपने नाम बदलने से पहले संबंधित लेबल का चयन किया है।

इसके बाद, लेबल बॉक्स के आगे दो टेक्स्ट बॉक्स डालें। इनका उपयोग उपयोगकर्ता के इनपुट को कैप्चर करने के लिए किया जाएगा। के माध्यम से दो टेक्स्ट बॉक्स के नाम बदलें (नाम) स्तंभ के भीतर गुण खिड़की। नाम इस प्रकार हैं:

  • टेक्स्टबॉक्स1: txtआवेदननहीं
  • टेक्स्टबॉक्स2: txtस्टूडेंटआईडी

छात्र विवरण फ्रेम डिजाइन करना

एक लंबवत फ्रेम डालें और 10 लेबल और 10 टेक्स्ट बॉक्स जोड़ें। निम्नलिखित तरीके से उनमें से प्रत्येक का नाम बदलें:

  • लेबल3: नाम
  • लेबल4: उम्र
  • लेबल5: पता
  • लेबल6: फ़ोन
  • लेबल7: शहर
  • लेबल8: देश
  • लेबल9: जन्म की तारीख
  • लेबल 10: पिन कोड
  • लेबल11: राष्ट्रीयता
  • लेबल12: लिंग

इन लेबलों के आगे संगत टेक्स्ट बॉक्स डालें; दो (या अधिक) डालें विकल्पबटन के बगल में उपयोगकर्ता प्रपत्र टूलबॉक्स से बॉक्स लिंग लेबल। उनका नाम बदलें पुरुष तथा महिला (कस्टम के साथ), क्रमशः।

पाठ्यक्रम विवरण फ्रेम डिजाइन करना

एक और लंबवत फ्रेम जोड़ें और प्रत्येक लेबल के अनुरूप छह लेबल और छह टेक्स्ट बॉक्स डालें। लेबल का नाम इस प्रकार बदलें:

  • लेबल13: कोर्स का नाम
  • लेबल14: पाठ्यक्रम आईडी
  • लेबल15: नामांकन प्रारंभ तिथि
  • लेबल16: नामांकन समाप्ति तिथि
  • लेबल17: कोर्स की अवधि
  • लेबल18: विभाग

संबंधित: VBA के साथ एक्सेल मैक्रोज़ की प्रोग्रामिंग करते समय 4 गलतियों से बचें

भुगतान विवरण फ्रेम डिजाइन करना

एक नया फ्रेम डालें; एक नया लेबल जोड़ें और उसका नाम बदलें "क्या आप भुगतान विवरण अपडेट करना चाहते हैं?" दो डालें विकल्पबटन; उनका नाम बदलें हां तथा नहीं.

इसी तरह, एक नया फ्रेम जोड़ें जिसमें दो अतिरिक्त लेबल और दो कॉम्बो बॉक्स हों। लेबल का नाम इस प्रकार बदलें:

  • लेबल19: भुगतान प्राप्त
  • लेबल20: भुगतान का प्रकार

नेविगेशन फलक डिजाइन करना

अंतिम फ्रेम में, टूलबॉक्स से तीन बटन जोड़ें, जिसमें प्रपत्रों के निष्पादन के लिए कोड होगा।

निम्नलिखित तरीके से बटनों का नाम बदलें:

  • बटन1: विवरण सहेजें
  • बटन 2: स्पष्ट प्रपत्र
  • बटन3: बाहर जाएं

स्वचालित प्रपत्र कोड लिखना: विवरण सहेजें बटन

पर डबल-क्लिक करें विवरण सहेजें बटन। आगामी मॉड्यूल में, निम्नलिखित कोड डालें:

निजी उप कमांडबटन2_क्लिक करें ()

'पूरे कोड में उपयोग किए गए चर घोषित करें'
वर्कशीट के रूप में मंद sht, वर्कशीट के रूप में sht1, लंबे समय तक अंतिम

'संख्यात्मक क्षेत्रों में वर्ण मान दर्ज किए जा रहे हैं या नहीं, यह जांचने के लिए सत्यापन जोड़ें।
यदि VBA.IsNumeric (txtApplicationNo. Value) = False तो
MsgBox "एप्लिकेशन नंबर में केवल संख्यात्मक मान स्वीकार किए जाते हैं", vbक्रिटिकल
उप से बाहर निकलें
अगर अंत

अगर VBA.IsNumeric (txtStudentID.Value) = असत्य तो
MsgBox "स्टूडेंट आईडी में केवल संख्यात्मक मान स्वीकार किए जाते हैं", vbक्रिटिकल
उप से बाहर निकलें
अगर अंत

यदि VBA.IsNumeric (txtAge. मान) = असत्य तब
MsgBox "आयु में केवल संख्यात्मक मान स्वीकार किए जाते हैं", vbक्रिटिकल
उप से बाहर निकलें
अगर अंत

यदि VBA.IsNumeric (txtPhone. मान) = असत्य तब
MsgBox "फ़ोन नंबर में केवल संख्यात्मक मान स्वीकार किए जाते हैं", vbक्रिटिकल
उप से बाहर निकलें
अगर अंत

अगर VBA.IsNumeric (Me.txtCourseID.Value) = असत्य तो
MsgBox "कोर्स आईडी में केवल संख्यात्मक मान स्वीकार किए जाते हैं", vbक्रिटिकल
उप से बाहर निकलें
अगर अंत

रोलिंग डेटाबेस बनाने के लिए टेक्स्ट बॉक्स फ़ील्ड को अंतर्निहित शीट से लिंक करें
सेट शट = यह वर्कबुक। पत्रक ("छात्र डेटाबेस")

'दोनों शीटों में अंतिम आबादी वाली पंक्ति की गणना करें'

लास्टरो = शट। रेंज ("ए" और पंक्तियाँ। गणना)। अंत (xlUp)। पंक्ति + 1

'प्रत्येक टेक्स्टबॉक्स के मूल्यों को उनके संबंधित शीट सेल में पेस्ट करें'

sht. के साथ
.रेंज ("ए" और लास्ट्रो)। वैल्यू = txtApplicationNo. मूल्य
.रेंज ("बी" और अंतिम पंक्ति)। मान = txtStudentID.Value
.रेंज ("सी" और अंतिम पंक्ति)। मान = txtName. मूल्य
.रेंज ("डी" और लास्ट्रो)। वैल्यू = txtAge. मूल्य
.रेंज ("ई" और अंतिम पंक्ति)। मान = txtDOB.Value
.रेंज ("जी" और लास्ट्रो)। वैल्यू = txtAddress. मूल्य
.रेंज ("एच" और लास्ट्रो)। वैल्यू = txtPhone. मूल्य
.रेंज ("i" और लास्ट्रो)। वैल्यू = txtCity. मूल्य
.रेंज ("जे" और लास्ट्रो)। वैल्यू = txtCountry. मूल्य
.रेंज ("के" और लास्ट्रो)। वैल्यू = txtZip। मूल्य
.रेंज ("एल" और लास्ट्रो)। मान = txtराष्ट्रीयता। मूल्य
.रेंज ("एम" और लास्ट्रो)। वैल्यू = txtCourse. मूल्य
.रेंज ("एन" और लास्ट्रो)। वैल्यू = txtCourseID.Value
.रेंज ("ओ" और लास्ट्रो)। वैल्यू = txtenrollmentstart. मूल्य
.रेंज ("पी" और लास्ट्रो)। वैल्यू = txtenrollmentend. मूल्य
.रेंज ("क्यू" और लास्ट्रो)। वैल्यू = टीएक्सटीकोर्सड्यूरेशन। मूल्य
.रेंज ("आर" और लास्ट्रो)। वैल्यू = txtDept. मूल्य

के साथ समाप्त करना
शट। सक्रिय

'उपयोगकर्ता के इनपुट के अनुसार लिंग निर्धारित करें'
यदि ऑप्टमेल. मान = सत्य तब शट। रेंज ("जी" और अंतिम)। मान = "पुरुष"
अगर ऑप्ट फीमेल. मान = सत्य तब शट। रेंज ("जी" और लास्ट्रो)। मान = "महिला"
'यदि उपयोगकर्ता हाँ रेडियो बटन का चयन करता है, तो एक संदेश बॉक्स प्रदर्शित करें

यदि विकल्प हाँ। मान = सत्य तब
MsgBox "कृपया नीचे भुगतान विवरण चुनें"
अन्य:
उप से बाहर निकलें

अगर अंत

अंत उप

यदि आप सुनिश्चित नहीं हैं कि कौन से भाग या किसी भी कोड का अर्थ है, तो चिंता न करें। हम इसे अगले भाग में अच्छी तरह से समझाएंगे।

स्वचालित प्रपत्र कोड समझाया गया

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

an. का उपयोग करना अगर कथन, कोड त्रुटि पॉप-अप को ट्रिगर करता है यदि उपयोगकर्ता किसी भी संख्यात्मक फ़ील्ड में वर्ण या टेक्स्ट मान दर्ज करता है।

चूंकि त्रुटि सत्यापन मौजूद हैं, इसलिए आपको टेक्स्ट बॉक्स को शीट सेल से लिंक करने की आवश्यकता है।

अंतिम पंक्ति चर अंतिम आबादी वाली पंक्ति की गणना करेंगे, और गतिशील उपयोग के लिए उनमें मूल्यों को संग्रहीत करेंगे।

अंत में, मान टेक्स्ट बॉक्स से लिंक की गई एक्सेल शीट में चिपकाए जाते हैं।

फ़ॉर्म साफ़ करें और बटन कोड से बाहर निकलें

में स्पष्ट बटन, आपको उपयोगकर्ता प्रपत्र से मौजूदा मानों को साफ़ करने के लिए कोड लिखना होगा। यह निम्नलिखित तरीके से किया जा सकता है:

मेरे साथ
.txtआवेदन सं। मान = ""
.txtStudentID.Value = ""
..txtनाम। मान = ""
.txtआयु। मान = ""
.txtपता. मान = ""
.txtफोन। मान = ""
.txtसिटी। मान = ""
.txtदेश। मान = ""
.txtDOB.Value = ""
.txtज़िप। मान = ""
.txtराष्ट्रीयता। मान = ""
.txtपाठ्यक्रम। मान = ""
.txtCourseID.Value = ""
.txtनामांकनप्रारंभ। मान = ""
.txtenrollmentend. मान = ""
.txtपाठ्यक्रम अवधि। मान = ""
.txt विभाग मान = ""
.cmb भुगतान मोड। मान = ""
.cmb भुगतान। मान = ""
.ऑप्ट महिला। मान = असत्य
.optMale. मान = असत्य
.विकल्प हाँ। मान = असत्य
ऑप्ट नं। मान = असत्य

के साथ समाप्त करना

में बाहर जाएं बटन, उपयोगकर्ता प्रपत्र को बंद करने के लिए निम्न कोड दर्ज करें।

निजी उप कमांडबटन5_क्लिक करें ()
मुझे उतारो
अंत उप

अंतिम चरण के रूप में, आपको कॉम्बो बॉक्स (भुगतान फ़्रेम के भीतर) के लिए ड्रॉप-डाउन मान बनाने के लिए कोड के कुछ अंतिम टुकड़े इनपुट करने होंगे।

निजी उप UserForm_Activate ()

cmbPayment के साथ
।स्पष्ट
।सामान जोडें ""
.AddItem "हां"
.AddItem "नहीं"
के साथ समाप्त करना
cmbPaymentMode के साथ

।स्पष्ट
।सामान जोडें ""
.AddItem "नकद"
.AddItem "कार्ड"
.AddItem "चेक"
के साथ समाप्त करना
अंत उप

वीबीए ऑटोमेशन काम को आसान बनाता है

वीबीए एक बहुआयामी भाषा है जो कई उद्देश्यों को पूरा करती है। वीबीए के भीतर उपयोगकर्ता प्रपत्र केवल एक पहलू हैं- कई अन्य उपयोग हैं जैसे कार्यपुस्तिकाओं और कार्यपत्रकों को समेकित करना, एकाधिक एक्सेल शीट्स को मर्ज करना, और अन्य आसान स्वचालन उपयोग।

कोई फर्क नहीं पड़ता स्वचालन लक्ष्य, VBA कार्य पर निर्भर है। यदि आप सीखते रहते हैं और अभ्यास करते रहते हैं, तो आपके वर्कफ़्लो का कोई भी पहलू ऐसा नहीं है जिसे आप सुधार नहीं सकते।

VBA मैक्रो का उपयोग करके एकाधिक एक्सेल शीट्स को कैसे मर्ज करें?

एक ही कार्यपुस्तिका में एक से अधिक एक्सेल शीट से डेटा मर्ज करना एक वास्तविक परेशानी है... जब तक आप वीबीए मैक्रोज़ का उपयोग नहीं करते।

आगे पढ़िए

साझा करनाकलरवईमेल
संबंधित विषय
  • प्रोग्रामिंग
  • उत्पादकता
  • विजुअल बेसिक प्रोग्रामिंग
  • Microsoft Excel
लेखक के बारे में
गौरव सियाल (50 लेख प्रकाशित)

गौरव सियाल के पास डिजिटल मार्केटिंग फर्मों और सॉफ्टवेयर जीवनचक्र दस्तावेजों की एक श्रृंखला के लिए लेखन का दो साल का अनुभव है।

गौरव सियाल की अन्य फ़िल्में-टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें