VBA रिफ्रेश पिवट टेबल - VBA का उपयोग करके ऑटो रिफ़रेन्स सभी पिवट टेबल

एक्सेल VBA रिफ्रेश पिवट टेबल

जब हम शीट में एक पिवट टेबल डालते हैं , तो एक बार डेटा चेंज करने के बाद पिवट टेबल डेटा स्वयं नहीं बदलता है, हमें इसे मैन्युअल रूप से करने की आवश्यकता होती है, लेकिन VBA में पिवट टेबल को रिफ्रेश करने के लिए एक स्टेटमेंट होता है , जो कि एक्सप्रेशन है ।refreshtable , इसका उपयोग करके हम रिफ्रेश कर सकते हैं। कार्यपत्रक के संदर्भ में पिवट टेबल जिसमें यह सम्‍मिलित है या हम वर्कशीट में संपूर्ण पिवट तालिकाओं को संदर्भित कर सकते हैं और उन सभी को एक बार में रीफ्रेश कर सकते हैं।

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

ऑटो रीफ़्रेश पिवट टेबल डेटा VBA कोड कैसे बदलें?

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

उदाहरण के लिए, नीचे दिए गए डेटा और पिवट टेबल को देखें।

अब मैं A1 से B17 तक सोर्स डेटा में नंबर बदलूंगा।

सेल B9 में, मुझे 499 से 1499 तक के मान को बदलना होगा, यानी डेटा में 1000 की वृद्धि लेकिन अगर आप अभी भी धुरी को देखते हैं तो परिणाम 5295 के बजाय 4295 के रूप में दिखता है। मुझे अपडेट करने के लिए अपने पिवट टेबल को मैन्युअल रूप से ताज़ा करना होगा। पिवट तालिका।

जब भी स्रोत डेटा में कोई परिवर्तन होता है, तो इस समस्या को दूर करने के लिए, हमें धुरी तालिका को ताज़ा करने के लिए एक सरल एक्सेल मैक्रो कोड लिखना होगा।

# 1 - सभी तालिका को ताज़ा करने के लिए सरल मैक्रो

चरण 1: डेटाशीट की घटना बदलें

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

एक बार जब आप शीट पर डबल-क्लिक करते हैं, तो "वर्कशीट" चुनें और ईवेंट को "बदलें" के रूप में चुनें

आप कार्यपत्रक_चेंज (बायवाल टारगेट रेंज के रूप में) के रूप में एक स्वचालित उप प्रक्रिया देखेंगे।

चरण 2: वर्कशीट ऑब्जेक्ट का उपयोग करें

कार्यपत्रक ऑब्जेक्ट का उपयोग करके डेटा पत्रक को देखें।

चरण 3: नाम से धुरी तालिका देखें

पिवट टेबल के नाम से पिवट टेबल नाम देखें।

चरण 4: ताज़ा तालिका पद्धति का उपयोग करें

"ताज़ा तालिका" के रूप में विधि का चयन करें।

जब भी स्रोत डेटाशीट में कोई परिवर्तन होता है, तो यह कोड पिवट टेबल "PivotTable1" को रिफ्रेश करेगा। आप नीचे दिए गए कोड का उपयोग कर सकते हैं। आपको बस पिवट टेबल का नाम बदलना होगा।

कोड:

निजी सब वर्क्सशीट_चेंज (बायल टारगेट रेंज के रूप में) वर्कशीट ("डेटा शीट")। PivotTables ("PivotTable1")। रिफ्रेशटेबल एंड सब।

# 2 - एक ही वर्कशीट के सभी धुरी तालिकाओं को ताज़ा करें

यदि आपके पास एक ही वर्कशीट में कई पिवट टेबल हैं, तो आप एक ही क्लिक में सभी पिवट टेबल को रिफ्रेश कर सकते हैं। शीट में सभी पिवट टेबल को रीफ्रेश करने के लिए नीचे दिए गए कोड का उपयोग करें।

कोड:

सब ताज़ा करें_Pivot_Tables_Example1 () कार्यपत्रक ("डेटा शीट")। ActiveSheet के साथ चयन करें। रिफ्रेशटेबल .PivotTables ("Table5")। रिफ्रेशटेबल एंड के साथ एंड सब

आपको अपने कार्यपत्रक विवरण के अनुसार कार्यपत्रक और धुरी तालिका के नाम बदलने की आवश्यकता है।

# 3 - वर्कबुक में सभी टेबल्स को रिफ्रेश करें

यह अत्यधिक संभावना नहीं है कि हमारे पास एक ही वर्कशीट पर सभी पिवट टेबल हैं। आमतौर पर, प्रत्येक रिपोर्ट के लिए, हम अलग-अलग शीट में अलग-अलग पिवट टेबल जोड़ने की कोशिश करते हैं। इन मामलों में, हम ताज़ा किए जाने वाले प्रत्येक पिवट टेबल के लिए कोड नहीं लिख सकते हैं।

So, what we can do is with a single code using loops, we can loop through all the pivot tables on the workbook and refresh them with a single click of the button.

The below code will loop through each pivot table and refresh them.

Code 1:

Sub Refresh_Pivot_Tables_Example2() Dim PT As PivotTable For Each PT In ActiveWorkbook.PivotTables PT.RefreshTable Next PT End Sub

Code 2:

Sub Refresh_Pivot_Tables_Example3() Dim PC As PivotCache For Each PC In ActiveWorkbook.PivotCaches PC.Refresh Next PT End Sub

Both the codes will do the refreshing of pivot tables.

If you want the pivot table to be refreshed as soon as there is any change in the datasheet of the pivoting sheet, you need to copy and paste the above codes to the Worksheet Change event in that workbook.

#4 - Avoid Loading Time by using Worksheet Deactivate Event

जब हम "वर्कशीट चेंज" इवेंट का उपयोग करते हैं, तो डेटा स्रोत में कोई परिवर्तन नहीं होने पर भी यह ताज़ा रहता है, लेकिन यदि कोई बदलाव वर्कशीट में होता है।

भले ही आप कार्यपत्रक में एक एकल बिंदु दर्ज करते हैं, यह पिवट तालिका को रीफ्रेश करने का प्रयास करता है। तो इससे बचने के लिए, हम "वर्कशीट चेंज" विधि के बजाय "वर्कशीट डीएक्टिवेट" विधि का उपयोग कर सकते हैं।

एक शीट से दूसरी शीट पर जाने पर पिवट टेबल पर ईवेंट अपडेट को निष्क्रिय करें।

दिलचस्प लेख...