मैं वीबीए में शुरुआत कर रहा हूँ। मेरे पास एक्सेल में एक वर्कशीट है जहां प्रत्येक महीने के लिए प्रत्येक माह के लिए कुल मात्रा की गणना करने के लिए टेबल बनाई जाती है। टेबल वर्कशीट में अलग-अलग कॉलम में स्थित होते हैं। इस तालिका में डेटा प्रत्येक माह के लिए बनाई गई संबंधित शीट में मैन्युअल रूप से इनपुट किए गए डेटा का उपयोग करके पॉप्युलेट किया जाता है।

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

यह उस वर्कशीट का एक उदाहरण है जिसे मैं संकलित करना चाहता हूं:

sample table

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

sample table

कार्यपुस्तिका को दैनिक आधार पर अद्यतन किया जाएगा। शामिल कार्यपत्रकों के नाम इस तरह के प्रारूप में नामित किए जाएंगे: Jul'19, Aug'19, Sept'20, आदि। समय के साथ और भी कार्यपत्रक बनाए जाएंगे।

0
jqy 26 नवम्बर 2020, 14:55

1 उत्तर

सबसे बढ़िया उत्तर

कृपया, एक फॉर्म बनाएं और उसके मॉड्यूल में अगला कोड डालें:

Option Explicit

Private Sub UserForm_Initialize()
    Dim sh As Worksheet, wb As Workbook
    
    Set wb = ActiveWorkbook
    For Each sh In wb.Sheets
        Me.cbMonth.AddItem sh.Name
    Next sh
End Sub

Private Sub cbMonth_Change()
  Dim wb As Workbook, sh As Worksheet, Tbl As ListObject
  Set wb = ActiveWorkbook
  Set sh = wb.Sheets(Me.cbMonth.Value)
  Set Tbl = sh.ListObjects(1)
  arr = Tbl.Range.Value
   With Me.ListBox1
        .ColumnCount = UBound(arr, 2)
        .ColumnWidths = "40;25;22;23;22;22;22;48;40"
        .list = arr
   End With
End Sub

तो, आपको cbMonth नाम का कॉम्बो बॉक्स और 'ListBox1' नाम का एक लिस्ट बॉक्स रखना होगा।

प्रपत्र Initialize ईवेंट पर कॉम्बो बॉक्स शीट्स के नाम से भर जाता है।

कॉम्बो बॉक्स Change ईवेंट पर 'ListBox1' चयनित शीट नाम की पहली तालिका श्रेणी के साथ पॉप्युलेट होता है। इसलिए, प्रत्येक शीट में केवल एक टेबल होनी चाहिए, या, यदि अधिक टेबल हैं, तो आवश्यक पहला होना चाहिए।

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

The form picture

0
FaneDuru 27 नवम्बर 2020, 07:47