جدول محوري لتحديث VBA | التحديث التلقائي لكل الجداول المحورية باستخدام VBA

تحديث الجدول المحوري لبرنامج Excel VBA

عندما نقوم بإدراج جدول محوري في الورقة ، بمجرد أن تتغير البيانات لا تتغير بيانات الجدول المحوري ، نحتاج إلى القيام بذلك يدويًا ولكن في VBA هناك بيان لتحديث الجدول المحوري وهو تعبير . الجدول المحوري بالرجوع إلى ورقة العمل المكونة منه أو يمكننا الرجوع إلى الجداول المحورية بأكملها في أوراق العمل وتحديثها جميعًا مرة واحدة.

يعد الجدول المحوري أمرًا حيويًا في تحليل كمية هائلة من البيانات. إنه يساعد مباشرة من التحليل والتلخيص وكذلك إجراء تفسير مفيد للبيانات. ومع ذلك ، فإن إحدى مشكلات هذا الجدول المحوري هي أنه لن يتم تحديثه تلقائيًا إذا كان هناك أي تغيير في البيانات المصدر ، ويجب على المستخدم تحديث الجدول المحوري بالانتقال إلى الجدول المحوري المعين في كل مرة عندما يكون هناك تغيير. لكن قل وداعًا للعملية اليدوية لأن لدينا هنا طريقة لتحديث الجدول المحوري بمجرد إجراء أي تغيير في الجدول المحوري.

كيفية التحديث التلقائي لبيانات الجدول المحوري كود VBA؟

المرة الوحيدة التي يحتاج فيها الجدول المحوري إلى التحديث هي متى كان هناك أي تغيير في البيانات المصدر للجدول المحوري الذي نشير إليه.

على سبيل المثال ، انظر إلى البيانات أدناه والجدول المحوري.

الآن سوف أقوم بتغيير الأرقام في البيانات المصدر أي من A1 إلى B17.

في الخلية B9 ، لا بد لي من تغيير القيمة من 499 إلى 1499 ، أي 1000 زيادة في البيانات ولكن إذا نظرت إلى المحور لا يزال يظهر النتيجة على أنها 4295 بدلاً من 5295. يجب أن أقوم بتحديث الجدول المحوري يدويًا لتحديث الجدول المحوري.

للتغلب على هذه المشكلة ، نحتاج إلى كتابة رمز ماكرو بسيط من Excel لتحديث الجدول المحوري كلما حدث أي تغيير في بيانات المصدر.

يمكنك تنزيل قالب Excel لجدول محوري تحديث VBA هذا هنا - قالب Excel للجدول المحوري VBA

# 1 - ماكرو بسيط لتحديث كل الجدول

الخطوة 1: حدث التغيير في ورقة البيانات

نحتاج إلى تشغيل حدث التغيير في ورقة البيانات. في محرر Visual Basic ، انقر نقرًا مزدوجًا على ورقة البيانات.

بمجرد النقر نقرًا مزدوجًا على الورقة ، حدد "ورقة عمل" وحدد الحدث باسم "تغيير".

سترى إجراء فرعي تلقائي مفتوحًا كـ Worksheet_Change (ByVal Target As Range)

الخطوة 2: استخدم كائن ورقة العمل

ارجع إلى ورقة البيانات باستخدام كائن أوراق العمل.

الخطوة 3: الرجوع إلى الجدول المحوري حسب الاسم

الرجوع إلى اسم الجدول المحوري من خلال اسم الجدول المحوري.

الخطوة 4: استخدم طريقة تحديث الجدول

حدد الطريقة باسم "تحديث الجدول".

الآن ، ستقوم هذه الشفرة بتحديث الجدول المحوري "PivotTable1" متى كان هناك أي تغيير في ورقة البيانات المصدر. يمكنك استخدام الكود أدناه ، ما عليك سوى تغيير اسم الجدول المحوري.

رمز:

 ورقة عمل خاصة فرعية Worksheet_Change (ByVal Target As Range) ("ورقة البيانات"). PivotTables ("PivotTable1"). RefreshTable End Sub 

# 2 - قم بتحديث كافة الجداول المحورية الخاصة بورقة العمل نفسها

إذا كان لديك العديد من الجداول المحورية في نفس ورقة العمل ، يمكنك تحديث جميع الجداول المحورية بنقرة واحدة بحد ذاتها. استخدم الكود أدناه لتحديث جميع الجداول المحورية في الورقة.

رمز:

 Sub Refresh_Pivot_Tables_Example1 () Worksheets ("Data Sheet"). حدد مع ActiveSheet .PivotTables ("Table1"). RefreshTable .PivotTables ("Table2"). RefreshTable .PivotTables ("Table3"). RefreshTable .PivotTables ("Table4"). RefreshTable .PivotTables ("Table5"). RefreshTable End With End Sub 

تحتاج إلى تغيير اسم ورقة العمل وأسماء الجدول المحوري وفقًا لتفاصيل ورقة العمل الخاصة بك.

# 3 - تحديث كل الجداول في المصنف

من المستبعد جدًا أن يكون لدينا كل الجداول المحورية في نفس ورقة العمل. عادة ، لكل تقرير ، نحاول إضافة جداول محورية منفصلة في أوراق منفصلة. في هذه الحالات ، لا يمكننا الاستمرار في كتابة التعليمات البرمجية لتحديث كل جدول محوري.

لذلك ، ما يمكننا القيام به هو باستخدام رمز واحد باستخدام حلقات يمكننا تكرارها عبر جميع الجداول المحورية في المصنف وتحديثها بنقرة واحدة على الزر.

سيتم تكرار الكود أدناه خلال كل جدول محوري وتحديثها.

الكود 1:

 Sub Refresh_Pivot_Tables_Example2 () خافت PT كـ PivotTable لكل PT في ActiveWorkbook.PivotTables PT.RefreshTable التالي PT End Sub 

الكود 2:

 Sub Refresh_Pivot_Tables_Example3 () خافت للكمبيوتر كـ PivotCache لكل كمبيوتر شخصي في ActiveWorkbook.PivotCaches PC. 

سيقوم كلا الرمزين بتحديث الجداول المحورية.

إذا كنت تريد تحديث الجدول المحوري بمجرد حدوث أي تغيير في ورقة البيانات الخاصة بورقة التمحور ، فأنت بحاجة إلى نسخ الرموز أعلاه ولصقها في حدث تغيير ورقة العمل في هذا المصنف.

# 4 - تجنب وقت التحميل باستخدام حدث إلغاء تنشيط ورقة العمل

عندما نستخدم حدث "تغيير ورقة العمل" ، فإنه يستمر في التحديث حتى في حالة عدم وجود تغيير في مصدر البيانات ولكن إذا حدث أي تغيير في ورقة العمل.

حتى إذا أدخلت نقطة واحدة في ورقة العمل ، فإنها تحاول تحديث الجدول المحوري. لذا لتجنب ذلك يمكننا استخدام طريقة "إلغاء تنشيط ورقة العمل" بدلاً من طريقة "تغيير ورقة العمل".

قم بإلغاء تنشيط تحديثات الأحداث على الجدول المحوري عند الانتقال من ورقة إلى ورقة أخرى.


$config[zx-auto] not found$config[zx-overlay] not found