أكاديمية الصقر للتدريب

اعلن هنا
أكاديمية الصقر للتدريب
أعلن هنا
أعلن هنا
صفحتنا على الفيس بوك
أعلن هنا

لوحة التميز الأسبوعي
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
العضو المتميز
المشرف المتميز
المراقب المتميز
المدير المتميز
الموضوع المتميز
القسم المتميز
بكار للأبد Eslam Abdullah لا تميز خلال هذه الفترة YasserKhalil الداله الجديده المعرفه alsqrdate - حسام خطاب اكسيل اسئله واجابات




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





استدعاء بيانات الطلاب لفصل معين لمادة معينة (درس للمستوى المتقدم)

السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله .. بدايةً الدرس للمستوى المتقدم وفوق المتوسط في الـ VBA ... أحبب ..



12-03-2018 09:53 صباحا
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 5060
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 15
يتابعهم : 0
يتابعونه : 331
قوة السمعة : 14756
الاعجاب : 5509
 offline 

السلام عليكم ورحمة الله وبركاته

إخواني وأحبابي في الله ..
بدايةً الدرس للمستوى المتقدم وفوق المتوسط في الـ VBA ... أحببت أن أنوه قبل البدء

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

بدأت بالفورم بزر الاختيار الخاص بمادة اللغة العربية OptionButton1 ووجدت الكود التالي
Private Sub OptionButton1_Click()
    ActiveSheet.Range("D3").Value = Subjects.ComboBox1.Text
    Test_A
    ActiveSheet.Range("F3").Value = "اللغة العربية"
    Me.OptionButton1.Value = False
End Sub

حيث يقوم الكود بوضع قيمة الكومبوبوكس في الخلية D3 ويضع اسم المادة في الخلية F3 ويستدعي إجراء آخر باسم Test_A
وعند الإطلاع على الإجراء وجدت أنه اعتمد على جلب البيانات باستخدام المصفوفات حيث وضع شرط الفصل في الكود فيتم جلب بيانات هذا الفصل فقط في هذه المادة ، حيث استخدم مصفوفة بالأعمدة المطلوب جلبها فقط وهي الأعمدة 2 و 5 و 6
وكرر الأخ الحبيب محمد الدسوقي نفس الأكواد لجميع المواد بنفس الأسلوب مع تغيير أرقام الأعمدة فقط ، وهذا حل رائع بكل المقاييس

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





وإليكم الإجراء العام الذي سيستخدم عدة مرات
Sub FetchBySubject(x As Variant)
    Dim ws          As Worksheet
    Dim sh          As Worksheet
    Dim a           As Variant
    Dim b           As Variant
    Dim m           As Long
    Dim i           As Long
    Dim j           As Long
    Dim p           As Long

    Set ws = ThisWorkbook.Sheets("Data")
    Set sh = ThisWorkbook.Sheets("Output")

    m = ws.Cells(Rows.Count, 2).End(xlUp).Row
    sh.Range("C5:E34").ClearContents
    a = ws.Range("A7:AB" & m).Value
    ReDim b(1 To UBound(a, 1) + 1, 0 To UBound(x) + 1)

    For i = 1 To UBound(a)
        If a(i, 4) = sh.Range("D3").Value Then
            p = p + 1
            For j = 0 To UBound(x)
                b(p, j) = a(i, x(j))
            Next j
        End If
    Next i

    Application.ScreenUpdating = False
        If p > 0 Then sh.Range("C5").Resize(p, UBound(b, 2)).Value = b
    Application.ScreenUpdating = True
End Sub

في الإجراء العام المتغير x سيشير للمصفوفة الأحادية ، أي مصفوفة أرقام الأعمدة المطلوب جلبها والتعامل معها

** ملحوظة قمت بتغيير أسماء ورقة العمل في الملف الأصلي إلى Data و Output

Mjc4NTAwMQ6161001

>> يوضع في الموديول العادي كود لإظهار الفورم بهذا الشكل (مستوى مبتديء)
Sub ShowForm()
    Subjects.Show
End Sub


الآن انتهينا من الإجراء العام ........... 
=====================================================================
الآن عند انتقالي لأزرار الاختيار وجدت أنه سيكون بنفس النمط والشكل أيضاً ( حيث يوجد 8 أزرار اختيار وسيقوم الكود عند النقر على أي زر من هذه الأرزار بتعبئة الخلايا D3 و F3 ثم استدعاء الإجراء العام ، ومن هنا أتت فكرة أخرى ، وهي للمستوى المتقدم .. 
الفكرة تعتمد على أن الأحداث المطلوب التعامل معها واحدة وهو الحدث Click ، وأزرار التحكم المطلوب التعامل معها واحدة وهي Option Buttons
ومن ثم تأتي فكرة إنشاء Class Module >> ولتقريب الصورة للأذهان : هذا بمثابة عمل وإنشاء قالب جاهز أو قالب متشابه ، والذي يمكن الاستفادة منه في عدم تكرار الأحداث على أزرار التحكم (قد يبدو الكلام غير مفهوم .. لكن بالمثال يتضح المقال)

>> قم بإنشاء Class Module عن طريق كليك يمين في نافذة المشروع ثم اختر Insert ثم Class Module
قم بتمسية الـ Class Module باسم clsOptionButton بهذا الشكل
MzcyMTA4MQ1515002

دبل كليك على الـ Class Module وأدخل الكود التالي
Public WithEvents myOptionButton As MSForms.OptionButton
Public x As Variant

Private Sub myOptionButton_Click()
    ActiveSheet.Range("D3").Value = Subjects.ComboBox1.Text
    ActiveSheet.Range("F3").Value = myOptionButton.Caption

    Select Case myOptionButton.Name
        Case "OptionButton1": x = Array(2, 5, 6)
        Case "OptionButton2": x = Array(2, 8, 9)
        Case "OptionButton3": x = Array(2, 11, 12)
        Case "OptionButton4": x = Array(2, 14, 15)
        Case "OptionButton5": x = Array(2, 17, 18)
        Case "OptionButton6": x = Array(2, 20, 21)
        Case "OptionButton7": x = Array(2, 23, 24)
        Case "OptionButton8": x = Array(2, 26, 27)
    End Select

    FetchBySubject x
End Sub

ماذا يفعل الكود هنا؟
الكود سوف يغنيك عن التعامل مع أزرار الاختيار من خلال الفورم ، بل سيتم التعامل معه من خلال الـ Class Module ...
هنا يتم وضع اسم الفصل الموجود في فورم Subjects في الخلية D3
ويتم وضع اسم المادة بناءً على عنوان الـ Option Button
ثم يأتي الجزء الأهم وهو استخدام جملة Select Case
حيث يتم اختبار اسم زر الاختيار Option Button ، فإذا كان الاسم هو OptionButton1 يتم تخزين مصفوفة أحادية باسم x لأرقام الأعمدة 2 و 5 و 6 ..... وهكذا مع بقية أزرار الاختيار

==================================================================
آخر نقطة وهو الفورم ، نذهب للفورم المسمى Subjects ثم نضع الكود التالي في حدث بدء تشغيل الفورم
Private arrOptionButtons() As New clsOptionButton

Private Sub UserForm_Initialize()
    Dim ctl         As Control
    Dim n           As Long

    For Each ctl In Me.Controls
        If TypeName(ctl) = "OptionButton" Then
            n = n + 1
            ReDim Preserve arrOptionButtons(1 To n)
            Set arrOptionButtons(n).myOptionButton = ctl
        End If
    Next ctl
End Sub

Private Sub UserForm_Terminate()
    Erase arrOptionButtons
End Sub


يتم الإعلان عن مصفوفة من النوع الجديد للـ Class Module ... بهذا الشكل
Private arrOptionButtons() As New clsOptionButton

حيث مع بدء تشغيل الفورم نقوم بتخزين أدوات التحكم المطلوب التعامل معها ، وأدوات التحكم المعنية هنا هي أزرار الاختيار

الآن وقد وصلنا للمحطة الأخيرة إذا قمنا بتشغيل الفورم واختيار الفصل من الكومبوبوكس ثم النقر على أي زر اختيار من الأزرار الموجودة في الفورم سيتم التعامل مع زر الاختيار بشكل منفصل بنفس الكود المستخدم في الـ Class Module

** ملحوظة : تم تغيير اسم أزرار الاختيار لمادتي "التربية الفنية" و"الحاسب الآلي" ...

لرؤية الروابط والمرفقات عليك الرد على الموضوع

أرجو أن تكونوا قد استفدتم من الموضوع ...
لا تنسونا بصالح دعائكم

أخوكم في الله / ياسر خليل أبو البراء
 




لرؤية الروابط والمرفقات عليك الرد على الموضوع


أثارت هذه المشاركة إعجاب: محمد الدسوقى، الصقر، sherifdish، أحمد يوسف، محمد أبو عبدو، زيزو العجوز، محمود ابو الدهب، ناصر سعيد1، إبراهيم قطاف، saeyd11، Excelawy، mohamed.ali، mahmoud ayad، ALI ALI، mohamed_omar،





12-03-2018 01:20 مساء
مشاهدة مشاركة منفردة [1]
محمد الدسوقى
menu_open
خبير
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-08-2017
رقم العضوية : 47
المشاركات : 452
الجنس : ذكر
تاريخ الميلاد : 14-10-1973
الدعوات : 54
يتابعهم : 8
يتابعونه : 377
قوة السمعة : 5368
الاعجاب : 1100
 offline 
look/images/icons/i1.gif استدعاء بيانات الطلاب لفصل معين لمادة معينة (درس للمستوى المتقدم)
تسلم اخى وحبيبى ومعلمى الفاضل / أبو البراء
شرح أكثر من رائع
ودائما ننتظر منك مثل هذه الابداعات
جارى تحميل الملف فى محاولة للتعمق والتجربة حتى تتم الفائدة
فجزاكم الله عنا خيرا وعلمكم ما ينفعكم ونفعكم بما علمكم وجعله نورا لكم على الصراط
تقبل خالص تحياتى

أثارت هذه المشاركة إعجاب: الصقر، YasserKhalil، saeyd11، mohamed.ali،




12-03-2018 05:00 مساء
مشاهدة مشاركة منفردة [2]
الصقر
menu_open عضوية موثقة
مدير المنتدى
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 2
المشاركات : 1498
الجنس : ذكر
الدعوات : 13
يتابعهم : 0
يتابعونه : 403
قوة السمعة : 12892
الاعجاب : 3152
موقعي : زيارة موقعي
 offline 
look/images/icons/i1.gif استدعاء بيانات الطلاب لفصل معين لمادة معينة (درس للمستوى المتقدم)

جزاكم الله خيرا اخى الحبيب ابوبراء 3



أثارت هذه المشاركة إعجاب: YasserKhalil، saeyd11،


توقيع :الصقر

اخى العضو الكريم
اذا كنت ترى ان المنتدى مفيد لك
فكن سفيرا لنا بدعوة الاخرين للانضمام معنا
فالدال على الخير كفاعله



12-03-2018 06:10 مساء
مشاهدة مشاركة منفردة [3]
محمد أبو عبدو
menu_open
عضو فعال
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 27-08-2017
رقم العضوية : 247
المشاركات : 129
الجنس : ذكر
تاريخ الميلاد : 13-4-1966
يتابعهم : 6
يتابعونه : 2
قوة السمعة : 384
الاعجاب : 185
 offline 
look/images/icons/i1.gif استدعاء بيانات الطلاب لفصل معين لمادة معينة (درس للمستوى المتقدم)
زاكم الله كل خير وبارك الله فيكم وزادكم الله علما ونفع بكم


أثارت هذه المشاركة إعجاب: YasserKhalil،




12-03-2018 06:11 مساء
مشاهدة مشاركة منفردة [4]
Kamel meraghni
menu_open
عضو فعال
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 26-08-2017
رقم العضوية : 182
المشاركات : 101
الجنس : ذكر
تاريخ الميلاد : 23-10-1984
يتابعهم : 7
يتابعونه : 6
قوة السمعة : 595
الاعجاب : 135
 offline 
look/images/icons/i1.gif استدعاء بيانات الطلاب لفصل معين لمادة معينة (درس للمستوى المتقدم)
بارك الله فيك

أثارت هذه المشاركة إعجاب: YasserKhalil،


توقيع :Kamel meraghni

الحمد لله وكفى والصلاة والسلام على الحبيب المصطفى



142



12-03-2018 06:54 مساء
مشاهدة مشاركة منفردة [5]
خالد الشاعر
menu_open
عضو نشيط
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 05-09-2017
رقم العضوية : 371
المشاركات : 71
الجنس : ذكر
تاريخ الميلاد : 3-7-1969
يتابعهم : 1
يتابعونه : 2
قوة السمعة : 102
الاعجاب : 38
 offline 
look/images/icons/i1.gif استدعاء بيانات الطلاب لفصل معين لمادة معينة (درس للمستوى المتقدم)
استاذ ياسر

ابداع ممتاز فى تنفيذ الكود

ممكن طلب لو سمحت شرح  Class Module  الوظيفة و فائده فى الملف

جزاكم الله كل خيراً

أثارت هذه المشاركة إعجاب: YasserKhalil، Excelawy،




12-03-2018 10:30 مساء
مشاهدة مشاركة منفردة [6]
ناصر سعيد1
menu_open
عضو ماسي
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 26-09-2017
رقم العضوية : 705
المشاركات : 440
الجنس : ذكر
تاريخ الميلاد : 2-2-1990
يتابعهم : 0
يتابعونه : 4
قوة السمعة : 505
الاعجاب : 190
 offline 
look/images/icons/i1.gif استدعاء بيانات الطلاب لفصل معين لمادة معينة (درس للمستوى المتقدم)
 
جزاكم الله كل خير
استاذ ياسر خليل
وبارك الله فيكم وزادكم الله علما وحلما
ونفع بكم

أثارت هذه المشاركة إعجاب: YasserKhalil،




12-03-2018 11:25 مساء
مشاهدة مشاركة منفردة [7]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 5060
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 15
يتابعهم : 0
يتابعونه : 331
قوة السمعة : 14756
الاعجاب : 5509
 offline 
look/images/icons/i1.gif استدعاء بيانات الطلاب لفصل معين لمادة معينة (درس للمستوى المتقدم)
بارك الله فيكم إخواني وأحبابي في الله وجزيتم خيراً بمثل ما دعوتم لي

الـ Class Module : هذه أول تجربة لي فيه ، وهو ببساطة كما ذكرت كأنه قالب جاهز .. يغنيك عن التعامل مع أدوات التحكم المتشابهة في الوظائف .. ويتضح هذا من خلال الملف المرفق في الموضوع حيث تم عمل Class Module لإنشاء كائن لأزرار الاختيار ومن ثم التعامل مع أي زر اختيار على الفورم بنفس المضمون والأكواد





14-03-2018 09:21 مساء
مشاهدة مشاركة منفردة [8]
saeyd11
menu_open
عضو
معلومات الكاتب ▼
تاريخ الإنضمام : 25-08-2017
رقم العضوية : 93
المشاركات : 8
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 11-3-1976
الدعوات : 1
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 22
الاعجاب : 6
موقعي : زيارة موقعي
 offline 
look/images/icons/i1.gif استدعاء بيانات الطلاب لفصل معين لمادة معينة (درس للمستوى المتقدم)
بارك الله فيك استاذى الكبير
درس مفيد جداا مع انه اعلى من مستواى بكثير جداا 
ربي يبارك فى عمرك يا رب

أثارت هذه المشاركة إعجاب: YasserKhalil،




15-03-2018 12:27 صباحا
مشاهدة مشاركة منفردة [9]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 5060
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 15
يتابعهم : 0
يتابعونه : 331
قوة السمعة : 14756
الاعجاب : 5509
 offline 
look/images/icons/i1.gif استدعاء بيانات الطلاب لفصل معين لمادة معينة (درس للمستوى المتقدم)
تسلم أخي الكريم سيد
أرجو أن تكون قد استفدت من الموضوع .. بارك الله فيك





25-03-2018 06:55 صباحا
مشاهدة مشاركة منفردة [10]
mohamed.ali
menu_open
عضو مشارك
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 12-09-2017
رقم العضوية : 464
المشاركات : 24
الجنس : ذكر
تاريخ الميلاد : 27-11-1985
يتابعهم : 9
يتابعونه : 0
قوة السمعة : 62
الاعجاب : 26
 offline 
look/images/icons/i1.gif استدعاء بيانات الطلاب لفصل معين لمادة معينة (درس للمستوى المتقدم)
جزاكم الله خيراكم وزادكم علما 

أثارت هذه المشاركة إعجاب: YasserKhalil،




25-03-2018 09:20 صباحا
مشاهدة مشاركة منفردة [11]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 5060
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 15
يتابعهم : 0
يتابعونه : 331
قوة السمعة : 14756
الاعجاب : 5509
 offline 
look/images/icons/i1.gif استدعاء بيانات الطلاب لفصل معين لمادة معينة (درس للمستوى المتقدم)
وجزيت خيراً أخي الكريم بمثل ما دعوت لي





01-04-2018 11:15 صباحا
مشاهدة مشاركة منفردة [12]
mahmoud ayad
menu_open
عضو فعال
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 15-03-2018
رقم العضوية : 4874
المشاركات : 129
الجنس : ذكر
تاريخ الميلاد : 29-5-1982
يتابعهم : 4
يتابعونه : 2
قوة السمعة : 298
الاعجاب : 130
 offline 
look/images/icons/i1.gif استدعاء بيانات الطلاب لفصل معين لمادة معينة (درس للمستوى المتقدم)
تسلم ايدك ابو براء بارك الله فيك اخي الكريم

أثارت هذه المشاركة إعجاب: YasserKhalil،





المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
استيراد بيانات الطلاب من موقع الوزاره ناصر سعيد1
11 673 atc_340
المساعده فى استدعاء بيانات الطلاب saeyd11
12 620 YasserKhalil

الكلمات الدلالية
استدعاء ، بيانات ، الطلاب ، لفصل ، معين ، لمادة ، معينة ، (درس ، للمستوى ، المتقدم) ،


 







اخلاء مسئولية: يخلى منتدى أكاديمية الصقر للتدريب مسئوليته عن اى مواضيع او مشاركات تندرج داخل الموقع ويحثكم على التواصل معنا ان كانت هناك اى إنتهاكات تتضمن اى انتهاك لحقوق الملكية الفكرية او الادبية لاى جهة - بالتواصل معنا من خلال نموذج مراسلة الإدارة .وسيتم اتخاذ الاجراءات اللازمة.
سياسة النشر: التعليقات المنشورة لا تعبر عن رأي منتدى أكاديمية الصقر للتدريب ولا نتحمل أي مسؤولية قانونية حيال ذلك ويتحمل كاتبها مسؤولية النشر.



الساعة الآن 09:01 مساء

أعلن هنا
أعلن هنا
أعلن هنا