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