أساسيات VBA إكسل : استعمالات الجداول في VBA الجزء الأول

 أساسيات VBA إكسل : استعمالات الجداول في VBA الجزء الأول




في هذه التدوينة سنكتشف استعمالات الجداول في VBA وستكون عبارة عن جزئين.


الجداول

تسمح لنا الجداول بتخزين عدد كبير من القيم على عكس المتغيرات التي يمكن أن تخزن قيمة واحدة فقط في كل مرة.

لقد تطرقنا إلى الموضوع في درس المتغيرات ، والآن سنكتشف امورا أعمق من ذالك.




الفائدة من الجداول


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

الميزة الثانية هي سرعة التنفيذ.

لكي نفهم أكثر سنرى مثالا :

تحتوي الورقة الأولى على قاعدة بيانات من 5000 صف من 3 أعمدة:

أساسيات VBA إكسل : استعمالات الجداول في VBA الجزء الأول





تحتوي الورقة الثانية على شبكة حيث يكون ملف OUI  حسب السنوات والعملاء:



أساسيات VBA إكسل : استعمالات الجداول في VBA الجزء الأول



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

بدون استخدام جدول ، سيستغرق 171.11 ثانية في الاكسيل لتنفيذ الإجراء:


أساسيات VBA إكسل : استعمالات الجداول في VBA الجزء الأول



اذا قمنا بحفظ قاعدة البيانات أولاً في الجدول  ثم إجراء نفس العمليات الحسابية ، سيستغرق تشغيل الإجراء 1.67 ثانية فقط :

أساسيات VBA إكسل : استعمالات الجداول في VBA الجزء الأول




وإذا قررنا تحسين الإجراء من خلال تسجيل البيانات فقط بامتداد نعم في الجدول وسنوات التواريخ فقط ، 0.58 ثانية كافية:

أساسيات VBA إكسل : استعمالات الجداول في VBA الجزء الأول



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


إعلان الجدول في VBA

فيما يلي بعض نماذج العبارات :

'Exemple de déclaration d'un tableau à 1 dimension Dim tab1(4) 'Exemple de déclaration d'un tableau à 2 dimensions Dim tab2(6, 1) 'Exemple de déclaration d'un tableau dynamique Dim tab3()


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

لا تحتاج إلى التصريح عن نوع (سلسلة ، عدد صحيح ، إلخ) لأنه في كثير من الحالات سيؤدي ذلك إلى إبطاء الإجراء الخاص بك.


حفظ البيانات في جدول


لنبدأ بتسجيل هذه البيانات القليلة في جدول:

أساسيات VBA إكسل : استعمالات الجداول في VBA الجزء الأول



نريد تسجيل قيم 11 × 1 هنا ، لذلك علينا أن نعلن عن مصفوفة أحادية البعد:

Dim tableau(10)

الجدول tableau(10)  يمكن أن يحتوي على 11 قيمة ، اذا تذكرتم أن ترقيم الجدول يبدأ من 0.

ثم يتلقى كل عنصر من عناصر الجدول قيمته:

Sub exemple() Dim tableau(10) 'Enregistrement des valeurs dans le tableau tableau(0) = Range("A2") tableau(1) = Range("A3") tableau(2) = Range("A4") tableau(3) = Range("A5") tableau(4) = Range("A6") tableau(5) = Range("A7") tableau(6) = Range("A8") tableau(7) = Range("A9") tableau(8) = Range("A10") tableau(9) = Range("A11") tableau(10) = Range("A12")  

End Sub

ولتجنب كل هذه التكرارات ، استخدم حلقة For:

Sub exemple() Dim tableau(10), i As Integer 'Enregistrement des valeurs dans le tableau For i = 0 To 10 tableau(i) = Range("A" & i + 2) Next End Sub

لاحظ أنه يمكنك استخدام وتعديل كل عنصر من عناصر المصفوفة على حدة كمتغير.

هنا مثال مع tableau(3) القيمة الرابعة من الجدول:

Sub exemple() Dim tableau(10), i As Integer 'Enregistrement des valeurs dans le tableau For i = 0 To 10 tableau(i) = Range("A" & i + 2) Next 'Affichage 1 MsgBox tableau(3) 'Renvoie : 08.03.2023 'Modification de l'une des valeurs tableau(3) = Year(tableau(3)) 'Affichage 2 MsgBox tableau(3) 'Renvoie : 2023 End Sub



Comments
No comments
Post a Comment



    Reading Mode :
    Font Size
    +
    16
    -
    lines height
    +
    2
    -