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

لوحة التميز الأسبوعي
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
مالك ماريه Eslam Abdullah-- لا تميز خلال هذه الفترة YasserKhalil مع أكاديمية الصقر اخفي أكوادك وعيش حياتك EvilClippy VBA Project Unviewable Protection اكسيل اسئله واجابات


اعلان هنا
ألعاب فلاش أون لاين
أعلن هنا
أعلن هنا
صفحتنا على الفيس بوك
أعلن هنا



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





الشرح المستفيض لكود البحث المتقدم باستخدام المصفوفات للأستاذ الكبير ياسر العربي Search Using Arrays

السلام عليكم ورحمة الله وبركاته كود البحث المتقدم باستخدام المصفوفات VBA Arrays قدم لنا الأخ الغالي ياسر العربي صاحب ..



07-09-2019 07:39 صباحا
YasserKhalil
menu_open عضوية موثقة
مراقب عام
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 7274
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 19
يتابعهم : 0
يتابعونه : 411
قوة السمعة : 20906
الاعجاب : 1481
 offline 

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

 كود البحث المتقدم باستخدام المصفوفات VBA Arrays

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

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

يوجد بالمرفق ورقتي عمل أحدهما باسم Data وفيها البيانات الخام من 14 عمود ، والورقة الأخرى باسم Result للنتائج وبها الخلية G2 والتي توضع بها نص الكلمة المراد البحث عنها.

oPtpR_001

Agi5k_002

وإليكم الكود مع الشرح بالتفصيل (وضعت مثال بسيط ليستطيع المتتبع للشرح فهم الكود بسهولة)

Sub Araby_Search()
    'تعريف المتغير لورقة العمل التي تحتوي على البيانات الخام
    Dim wsData As Worksheet

    'تعريف المتغير لورقة العمـل المطلـوب إظهـار النتائـج بها
    Dim wsResult As Worksheet

    'تعريف المتغير ليحمل قيم المصفـوفة للبيانات الخـام
    Dim arr As Variant

    'تعريف المتغير ليحمل قيم المصفوفة للنتائج المطلوبة
    Dim temp As Variant

    'تعريـف المتغير من النـوع النصي ليحمـل قيمة أو نص البحث
    'أي الكلمة المطلوب البحث عنها يتم تخزينها في هذا المتغير
    Dim strSearch As String
    
    'تعريف المتغير وسيستخدم في الحلقة التكرارية لصفوف المصفوفة
    Dim i As Long
    
    'تعريف المتغير وسيستخدم في الحلقة التكرارية لأعمدة المصفوفة
    Dim j As Long
    
    'تعريف المتغير وسيستخدم في مصفوفة النتائج لزيادة مقدار الصفوف بمقدار واحد
    Dim p As Long
    
    'تعيين قيمة للمتغير ليساوي ورقة العمل التي تحتوي
    '[Data] على البيانات الخام المطلوب معالجتها والمسماة
    Set wsData = Worksheets("Data")

    'تعيين قيمة للمتغير ليساوي ورقة العمل التي تريد إظهار
    '[G2] النتائج بها بمجرد إدخال قيمة أو نص محدد في الخلية
    Set wsResult = Worksheets("Result")
    
    'مسح النطاق الذي توضع فيه النتائج استعداداً لوضع النتائج الجديدة
    wsResult.Range("A8:N10000").ClearContents
    
    '[G2] تعيين قيمة للمتغير ليساوي قيمة الخلية
    'وهي الخلية التي ستوضع فيها نص الكلمة المطلوب البحث عنها
    strSearch = wsResult.Range("G2").Value
    
    'تعيين قيمـة للمتغير ليحمل قيم النطاق بالكامل للبيانات الخام
    ' وذلك [Data] حيث أن مصـدر البيانات الخام ورقة العمل المسماة
    'عند [N] وينتهي في العمود [A5] في النطاق الذي يبدأ من الخلية
    '[&] آخـر صف به بيانات ، ويتم تحديده عن طريـق الجزء بعد علامـة
    arr = wsData.Range("A5:N" & wsData.Cells(Rows.Count, 1).End(xlUp).Row).Value
    
    'والتي ستحمل قيم النتائج [Temp] إعادة تعيين أبعاد المصفوفة المسماة
    '[Arr] وتكون بنفس أبعاد المصفوفة التي تحمل البيانات الخام والمسماة
    'سنعتبر المصفوفة أشبـه بالصفـوف والأعمدة حيث الرقـم 1 يمثـل الصفـوف
    'بإرجاع أكبر قيمة [UBound]بينما الرقم 2 يمثل الأعمدة ، وتقوم الكلمة
    'أبعاد المصفوفة في هذه الحالة >>
    '-------------------------------
    'البعد الأول سيكون من 1 إلى أكبر قيمة للصفوف
    'البعد الثاني سيكون من 1 إلى أكبر قيمة للأعمدة
    ReDim temp(1 To UBound(arr, 1), 1 To UBound(arr, 2))
    
    'حلقة تكرارية من الصف الأول للمصفوفة إلى آخر صف بها
    For i = 1 To UBound(arr, 1)
    
        'إذا كان النص المطلوب البحث عنه فارغ يتم الخروج من تنفيذ الكود
        If strSearch = "" Then Exit Sub
        
        'هذا السطر هو أهم سطر بالكود حيث هو الشرط الذي من خلاله
        'والشرط [Temp] ستوضع النتائج في مصفوفة النتائج المسماة
        'هـو تطابق قيمة المصفوفة في صف الحلقة في العمود رقم 14
        'حيث يمثـل الرقم 14 العمود داخـل مصفوفة البيانات الخام
        '[strSearch] يتـم اختبـار التطابـق مع نـص البحث المسمى
        If arr(i, 14) Like "*" & strSearch & "*" Then
            
            'زيادة مقدار المتغير بمقدار 1
            'فائدة المتغير هنا هو أنه مع كل حلقة تكرارية
            'إذا تحقق الشرط فقط يزيد المتغير بمقدار واحد
            'ليمثل هذا المتغير صفوف مصفوفة النتائج الجديدة
            p = p + 1
            
            'حلقة تكرارية داخلية من العمود الأول للمصفوفة إلى آخر عمود بها
            For j = 1 To UBound(arr, 2)
                
                'تعبئـة مصفـوفة النتائـج بالبيانات مـن مصفوفة البيانات الخام
                '[Temp]مثـال لتتضح صورة كيفية تعبئة المصفوفة الجديدة المسماة
                'في أول حلقـة سيكون مقداره 1 ويمثل أول صف [P] المتغيـر المسمى
                'أول صف هنا لمصفوفة النتائج
                'في أول حلقة سيكون مقداره 1 ويمثل أول عمود [J] المتغير المسمى
                'في أول حلقة سيكون مقداره 1 ويمثل أول صف [I] المتغير المسمى
                'أول صف هنا لمصفوفة البيانات الخام
                temp(p, j) = arr(i, j)
                
            'الانتقال للحلقة التالية للأعمدة
            Next j
        
        'نهاية جملة الشرط وهو تطابق نص البحث مع العمود رقم 14 في المصفوفة
        End If
    
    'الانتقال للحلقة التالية في صفوف مصفوفة البيانات الخام
    Next i
    
    'إذا كانت قيمة المتغير أكبر من صفر فهذا يعني أنه تم إيجاد نتائج للبحث
    'حيث أن زيادة المتغير كما أوضحنا مقرونة بتحقق الشرط وطالما تحقق الشرط
    'فهذا يعني أن مصفوفة النتائج سيكون بها بيانات ومن ثم يتحقق الجزء الثاني
    
    '[A8] وضع نتائج مصفوفة النتائج في أول خلية في ورقة النتائج في الخلية
    '[P] ويتم تمديد النطاق بمقدار عدد الصفوف طبقاً لقيمة المتغير المسمى
    '[Temp] وبمقدار عدد الأعمدة طبقاً لأكبر عدد لأعمدة المصفوفة المسماة
    If p > 0 Then wsResult.Range("A8").Resize(p, UBound(temp, 2)).Value = temp
End Sub



لمشاهدة الروابط يلزمك التسجيل في أكاديمية الصقر للتدريب

إعداد وتقديم / ياسر العربي وياسر خليل أبو البراء
 
 


أثارت هذه المشاركة إعجاب: Yasser Elaraby، نصر الإيمان، ناصر سعيد، خالد ابوعوف، hassona229، sobhi67، ali mohamed ali، محمود ابو الدهب، مهند محسن، Ashraf Fouda، محمد حمود، محمد الدسوقى، yousef_kaf،





07-09-2019 07:59 صباحا
مشاهدة مشاركة منفردة [1]
ناصر سعيد
menu_open
عضو فعال
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 9
المشاركات : 165
الجنس : ذكر
تاريخ الميلاد : 1-1-1985
الدعوات : 1
يتابعهم : 0
يتابعونه : 3
قوة السمعة : 215
الاعجاب : 8
 offline 
look/images/icons/i1.gif الشرح المستفيض لكود البحث المتقدم باستخدام المصفوفات للأستاذ الكبير ياسر العربي Search Using Arrays
جزاكما الله خيرا ياعمالقه الاكواد
بارك الله لكما ولكل من يبتغ وجه الله

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


توقيع :ناصر سعيد
جزاكم الله خيرا



07-09-2019 08:03 صباحا
مشاهدة مشاركة منفردة [2]
ناصر سعيد
menu_open
عضو فعال
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 9
المشاركات : 165
الجنس : ذكر
تاريخ الميلاد : 1-1-1985
الدعوات : 1
يتابعهم : 0
يتابعونه : 3
قوة السمعة : 215
الاعجاب : 8
 offline 
look/images/icons/i1.gif الشرح المستفيض لكود البحث المتقدم باستخدام المصفوفات للأستاذ الكبير ياسر العربي Search Using Arrays
الرابط ليس بمستوى الجهد المبذول في الملف
نرجو رابطا سهلا
الله يرحم والدينا ووالديكم
لم استطع التحميل

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


توقيع :ناصر سعيد
جزاكم الله خيرا



07-09-2019 08:12 صباحا
مشاهدة مشاركة منفردة [3]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 7274
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 19
يتابعهم : 0
يتابعونه : 411
قوة السمعة : 20906
الاعجاب : 1481
 offline 
look/images/icons/i1.gif الشرح المستفيض لكود البحث المتقدم باستخدام المصفوفات للأستاذ الكبير ياسر العربي Search Using Arrays
بارك الله فيك أخي ناصر
الموضوعات تستغرق وقت طويل في تجهيزها والمعلومات المقدمة حصرية ويستغرق الموضوع ساعات في بعض الأحيان ، فهل كثير على الأعضاء دقيقة يستغرقها في التحميل؟؟!!

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

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




07-09-2019 08:28 صباحا
مشاهدة مشاركة منفردة [4]
Yasser Elaraby
menu_open عضوية موثقة
المشرف العام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 1
المشاركات : 1194
الجنس : ذكر
الدعوات : 13
مشاركات مكتبة الميديا: 25
يتابعهم : 2
يتابعونه : 600
قوة السمعة : 8656
الاعجاب : 465
موقعي : زيارة موقعي
 offline 
look/images/icons/i1.gif الشرح المستفيض لكود البحث المتقدم باستخدام المصفوفات للأستاذ الكبير ياسر العربي Search Using Arrays
اخي الكريم ابو البراء تجهيز وشرح رائع تسلم ياغالي
3dlat.com_02_18_9b08_a52d318330d32


أثارت هذه المشاركة إعجاب: YasserKhalil، ali mohamed ali، محمد الدسوقى،


توقيع :Yasser Elaraby
663013020



07-09-2019 08:33 صباحا
مشاهدة مشاركة منفردة [5]
نصر الإيمان
menu_open
عضو ماسي
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 15-02-2018
رقم العضوية : 4397
المشاركات : 314
الجنس : ذكر
تاريخ الميلاد : 29-12-1985
يتابعهم : 8
يتابعونه : 3
قوة السمعة : 721
الاعجاب : 74
 Online 
look/images/icons/i1.gif الشرح المستفيض لكود البحث المتقدم باستخدام المصفوفات للأستاذ الكبير ياسر العربي Search Using Arrays
جزاكم الله كل خير
جهد رائع...جعله الله بميزان حسناتك

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




07-09-2019 09:02 صباحا
مشاهدة مشاركة منفردة [6]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 7274
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 19
يتابعهم : 0
يتابعونه : 411
قوة السمعة : 20906
الاعجاب : 1481
 offline 
look/images/icons/i1.gif الشرح المستفيض لكود البحث المتقدم باستخدام المصفوفات للأستاذ الكبير ياسر العربي Search Using Arrays
أخي الحبيب ياسر العربي ونصر الإيمان
بارك الله فيكما وجزيتما خير الجزاء .. مشكور على مروركما العطر

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




07-09-2019 10:20 صباحا
مشاهدة مشاركة منفردة [7]
khaled alborene
menu_open
عضو متميز
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-08-2017
رقم العضوية : 16
المشاركات : 707
الجنس : ذكر
تاريخ الميلاد : 9-9-1990
الدعوات : 2
يتابعهم : 10
يتابعونه : 8
قوة السمعة : 845
الاعجاب : 68
 Online 
look/images/icons/i1.gif الشرح المستفيض لكود البحث المتقدم باستخدام المصفوفات للأستاذ الكبير ياسر العربي Search Using Arrays
اخي ياسر العربي كود جميل جدا بارك الله فيك
اخي ابو البراء شرح رائع وجميل ومستفيض جدا بارك الله فيك 
* ولكن هل من الممكن ان يكون البحث في اي مكان من الاعمدة ولا يقتصر على العمود رقم 14
 

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




07-09-2019 10:21 صباحا
مشاهدة مشاركة منفردة [8]
hassona229
menu_open
عضو نشيط
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 20-11-2018
رقم العضوية : 9257
المشاركات : 67
الجنس : ذكر
تاريخ الميلاد : 1-1-1989
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 112
الاعجاب : 45
 offline 
look/images/icons/i1.gif الشرح المستفيض لكود البحث المتقدم باستخدام المصفوفات للأستاذ الكبير ياسر العربي Search Using Arrays
جزاكم الله خيرا وتسلم ايدك
جعله الله في ميزان حسناتكم يوم القيامه

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




07-09-2019 10:29 صباحا
مشاهدة مشاركة منفردة [9]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 7274
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 19
يتابعهم : 0
يتابعونه : 411
قوة السمعة : 20906
الاعجاب : 1481
 offline 
look/images/icons/i1.gif الشرح المستفيض لكود البحث المتقدم باستخدام المصفوفات للأستاذ الكبير ياسر العربي Search Using Arrays
أخي العزيز خالد
أخي العزيز حسونة
بارك الله فيكما وجزيتما خيراً لمروركما العطر

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

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




07-09-2019 10:47 صباحا
مشاهدة مشاركة منفردة [10]
ali mohamed ali
menu_open
مشرف على منتدى الاكسيل
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 20-11-2017
رقم العضوية : 1757
المشاركات : 1212
الدولة : مصر
الجنس : ذكر
الدعوات : 1
يتابعهم : 0
يتابعونه : 52
قوة السمعة : 5717
الاعجاب : 715
 offline 
look/images/icons/i1.gif الشرح المستفيض لكود البحث المتقدم باستخدام المصفوفات للأستاذ الكبير ياسر العربي Search Using Arrays
أحسنتما بارك الله فيكما وجزاكم الله كل خير 
عمل ممتاز وشرح فعلا مستفيض زادكما الله من فضله 

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


توقيع :ali mohamed ali
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]
ساهم دائماً فى حل أى مشكلة او أستفسار لديك مع إضافة رد بشكره
أو دعوة لمن قدم اليك المساعدة,فالجميع هنا يعمل على مساعدة
 الاخرين لوجه الله وان تحتسب له اجر عند الله


07-09-2019 11:12 صباحا
مشاهدة مشاركة منفردة [11]
محمود ابو الدهب
menu_open
مشرف على لغات برمجة والاكسيل
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 14
المشاركات : 1238
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 4-7-1990
الدعوات : 59
يتابعهم : 6
يتابعونه : 212
قوة السمعة : 4092
الاعجاب : 476
موقعي : زيارة موقعي
 offline 
look/images/icons/i1.gif الشرح المستفيض لكود البحث المتقدم باستخدام المصفوفات للأستاذ الكبير ياسر العربي Search Using Arrays
unnamedunnamedunnamed

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


unnamedunnamedunnamed

أثارت هذه المشاركة إعجاب: Yasser Elaraby، YasserKhalil، محمد الدسوقى،


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

تحياتى وتقدير للجميع  محمود ابوالدهب


07-09-2019 11:33 صباحا
مشاهدة مشاركة منفردة [12]
khaled alborene
menu_open
عضو متميز
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-08-2017
رقم العضوية : 16
المشاركات : 707
الجنس : ذكر
تاريخ الميلاد : 9-9-1990
الدعوات : 2
يتابعهم : 10
يتابعونه : 8
قوة السمعة : 845
الاعجاب : 68
 Online 
look/images/icons/i1.gif الشرح المستفيض لكود البحث المتقدم باستخدام المصفوفات للأستاذ الكبير ياسر العربي Search Using Arrays
استاذ ياسر للاسف لم اتوصل الى حل 







الكلمات الدلالية
Arrays ، Using ، Search ، العربي ، ياسر ، الكبير ، للأستاذ ، المصفوفات ، باستخدام ، المتقدم ، البحث ، لكود ، المستفيض ، الشرح ،


 







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



الساعة الآن 07:47 مساء

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