एक्सेल - वर्कशीट ऑटो जनरेटर

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

  • मुद्दा
  • उपाय
  • ध्यान दें

मुद्दा

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

उपाय

मुझे नहीं पता कि आपका नाम और टेम्पलेट कैसा दिखता है

अपनी फ़ाइल की एक बैकअप प्रतिलिपि बनाएँ

कोड पढ़ें और उपयुक्त बदलाव करें, मैंने आपके लिए सब कुछ टिप्पणी की है।

  • Vbe खोलने के लिए ALT + F11 दबाएँ
  • सम्मिलित करें पर क्लिक करें, और मॉड्यूल का चयन करें
  • कॉपी करें और कोड को नीचे पेस्ट करें:

 सब जेनरेटशीटशीट () डिम sMasterNameSheet स्ट्रिंग के नाम के रूप में 'उस शीट का नाम, जिसमें कर्मचारी की जानकारी डिम sTimeSheetTempate As String' शीट का नाम है, जो कि टेम्केकार्ड टेम्प्लेट है डिम iMaxNameCame 'इंटीजर के रूप में कॉलम नंबर' जिसके नीचे सबसे ज्यादा आबादी वाली पंक्तियां हैं, Dim lMaxNameRow sTemp As String 'एक अस्थायी चर मंद VWarning As Variant' चेतावनी विलोपन के लिए '############################## #################################################################################= ############################## sMasterNameSheet = "नाम" 'यह उस शीट का नाम है जिसमें कर्मचारी की जानकारी sTimeSheetSempate = "Timesheet टेम्प्लेट है। "यह उस शीट का नाम है जो टाइमशीट टेम्प्लेट है डिम iNameCol As Integer 'जो कर्मचारी सूचना पत्र में कर्नल है, नाम की जानकारी है (अनुकरणीय अन्य कॉलम जोड़ें) कर्मचारी के नाम के अनुसार Dim sEmpName String' कर्मचारी का नाम iMacNameCol = 1 'यह कॉलम कर्मचारी पत्रक में iNameCol = 1 'में अधिकतम पंक्तियाँ भरी हुई हैं। यह वह स्तंभ है जहाँ पर empl होता है oyee नाम vWarning = MsgBox पाया जाता है ("यह" _ & sMasterNameSheet & "और" & sTimeSheetTempate _ & "को छोड़कर सभी पत्रक हटा देगा। प्रेस करने के लिए हां ", vbCritical + vbDefaultButton2 + vbYesNo) 'जारी रखना नहीं चाहते हैं तो vWarning vbYes तो बाहर निकलें सब' को हटाने के लिए, लेकिन दो शीट 'बुक में सभी शीट के माध्यम से सभी शीट में शीट के लिए शीट में जांच की जा रही है। लूप sTemp = mysheet.Name 'अगर शीट की जांच दो महत्वपूर्ण शीट नहीं है, तो इसे हटा दें यदि ((UCase (ट्रिम (sTemp)) UCase (ट्रिम (sMasterNameSheet))) और _ (UCase (ट्रिम (sTemp)) UCase (ट्रिम) । sEmpName = सेल (lThisRow, iNameCol) sEmpName = ट्रिम (sEmpName) अगर (sEmpName "") तो शीट्स (sTimeSheetTempate) .Select Sheets (sTimeSheetTempate) .Copy के बाद: = शीट्स (sST और SST और SST) को एक्टिवेट करें। आपको इस सैंपल लाइन में फ़िक्सेस करना होगा जो यह कह रहा है कि नए कॉपी किए गए टेम्पलेट पर, इसके सेल A1 में वैल्यू डालें ई कर्मचारी शीट शीट्स (sEmpName) के कॉलम ए में पाया जाता है। निकला हुआ किनारा ("A1") = शीट्स (sMasterNameSheet) ।Range ("A" & lThisRow) समाप्ति पर अगला अगला: अगला अंत उप। 
  • 4. इसे चलाने के लिए F5 दबाएं

ध्यान दें

मंच पर इस टिप के लिए rizvisa1 के लिए धन्यवाद।

पिछला लेख अगला लेख

शीर्ष युक्तियाँ