اذهب الي المحتوي
أوفيسنا

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


الردود الموصى بها

بسم الله الرحمن الرحيم 

 


 اقدم لكم  كود بحث متقدم
5646546565.PNG
 
كود بحث متقدم  يفوق معظم أنواع  البحث بالاعتماد على المصفوفات 
 
لضمان كفاءة عالية للبحث وسرعة جلب البيانات 
 
والمرونة العالية به  من حيث البحث داخل كل الأعمدة الموجودة داخل النطاق 
 
تم توضيح المتغيرات التي تستطيعوا تعديلها لتتوافق مع ملفاتكم 
الكود المستخدم داخل الملف 
Sub Yasser_Serch()
    Dim myArray, lr, X, targt, targtN
    Dim SERCH As Worksheet, DATA As Worksheet
    '____________________________________________
    Set DATA = Worksheets("Sheet2")    'اسم شيت قاعدة البيانات
    Set SERCH = Worksheets("Sheet1")    'اسم الشيت الخاص بالبحث
    '____________________________________________
    lr = DATA.Cells(Rows.Count, 1).End(xlUp).Row    'اخر صف به بيانات
    SERCH.Range("A4:J" & SERCH.Cells(Rows.Count, 4).End(xlUp).Row + 1).ClearContents    'مسح نطاق البحث القديم
    targt = SERCH.Range("e1").Value    'خلية البحث
    targtN = Application.WorksheetFunction.Match(SERCH.Range("D1"), SERCH.Range("A3:J3"), 0)    'دالة لايجاد رقم عمود البحث
    myArray = DATA.Range("A2:J" & lr + 1)    'نطاق قاعدةالبيانات الذي سيتم البحث فيه
    '____________________________________________
    ReDim Y(1 To lr, 1 To 10)
    For X = 1 To lr
        If targt = "" Then Exit Sub
        If myArray(X, targtN) Like targt & "*" Then
            rw = rw + 1
            Y(rw, 1) = myArray(X, 1): Y(rw, 6) = myArray(X, 6)
            Y(rw, 2) = myArray(X, 2): Y(rw, 7) = myArray(X, 7)
            Y(rw, 3) = myArray(X, 3): Y(rw, 8) = myArray(X, 8)
            Y(rw, 4) = myArray(X, 4): Y(rw, 9) = myArray(X, 9)
            Y(rw, 5) = myArray(X, 5): Y(rw, 10) = myArray(X, 10)
        End If
    Next X
    If rw > 0 Then SERCH.Cells(Rows.Count, 1).End(xlUp)(2, 1).Resize(rw, 10).Value = Y()
End Sub


لتحميل الملف اضغط هنا


اعداد /  ياسر العربي

تقبلو تحياتي

:fff::fff::fff::fff:

  • Like 14
رابط هذا التعليق
شارك

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

تقبل وافر تقديري واحترامي

  • Like 2
رابط هذا التعليق
شارك

استاذنا العزيز / ياسر العربي  

ممكن مثال البحث يكون على شرطين  مثلا ( الأسم ) والتاريخ  والتاريخ يكون  مثلا بين 2016/1/01 و 2016/10/10

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

رابط هذا التعليق
شارك

أخي الكريم عاطف

هذا الموضوع أريد التعامل معه ولكن يلزمني ملف مصمم بطريقة احترافية لكي يكون مثال واضح للمطلوب ..

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

فقط عليك التصميم (ولكن بشكل احترافي ..ابتعد عن التنسيقات العالية فقط قم بتنسيق البيانات بشكل بسيط ومنظم .. اجعل العناوين واضحة .. وضح شكل المخرجات : هل تريد المخرجات لجميع الأعمدة أم أن هناك أعمدة ستقوم باستثنائها ؟)
وإن شاء الله إذا تيسر لي الوقت سأقوم بطرح موضوع بهذا الخصوص

تقبل تحياتي

  • Like 3
رابط هذا التعليق
شارك

مشكورين جميعا اخواني لمروركم الكريم

تقبلو خالص تحياتي

 

 

اما بخصوص البحث بشروط تفضلو التعديل بحث باي شرط الى شرط التاريخ كما طلب الاخ عاطف

وشكرا

 

 

SERCH_ARRY_YASSER_ELARABY1.rar

  • Like 4
رابط هذا التعليق
شارك

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

أخي الحبيب أبو أسيل

أنت كعادتك مبدع ...أحسنت جزاك الله خيراً...:wink2:

شكراً جزيلاً على اللمسات الرائعة على الأكواد:signthankspin:

والتوضيحات المرفقة بها.

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

  • Like 3
رابط هذا التعليق
شارك

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

نتمنى ان تكون في تمام الصحة والعافية انت وجميع العائلة

مشكور على كلماتك الجميلة

تقبل خالص تقديري

:fff:

  • Like 1
رابط هذا التعليق
شارك

12 دقائق مضت, ياسر العربى said:

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

نتمنى ان تكون في تمام الصحة والعافية انت وجميع العائلة

مشكور على كلماتك الجميلة

تقبل خالص تقديري

:fff:

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

أخي الحبيب أبو أسيل

أسأل الله تعالى أن يسلمكم من كل سوء..

اعلم يقيناً أنني لا أستغني عن علمكم وأدبكم والانتساب إلى هذا الطود الشامخ ولكن الظروف ...رمت بي بعيداً عن التواصل معكم

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

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

تم تعديل بواسطه محمد حسن المحمد
  • Like 2
رابط هذا التعليق
شارك

Sub Yasser_Serch()
''هذا الكود للعبقري ياسر العربي حفظه الله
'' تم هذا الكود بتاريخ 8 / 10/ 2016
''الهدف من الكود هو فلترة البيانات
''شرح الكود
''
    Dim myArray, lr, X, targt, targt1, targt2, targtN
    Dim SERCH As Worksheet, DATA As Worksheet
    '____________________________________________
    Set DATA = Worksheets("رصد الترم الثانى")    'اسم شيت قاعدة البيانات
    Set SERCH = Worksheets("الحاله")    'اسم الشيت الخاص بالبحث
    '____________________________________________
    lr = DATA.Cells(Rows.Count, 2).End(xlUp).Row + 2  'اخر صف به بيانات
    SERCH.Range("A10:CX" & SERCH.Cells(Rows.Count, 2).End(xlUp).Row + 1).ClearContents    'مسح نطاق البحث القديم
    targt = SERCH.Range("e2").Value    'خلية البحث
    myArray = DATA.Range("A7:CX" & lr)     'نطاق قاعدةالبيانات الذي سيتم البحث فيه
    '____________________________________________
    ReDim Y(1 To lr, 1 To 102)
    For X = 1 To lr - 6
        If targt = "" Then Exit Sub
        If myArray(X, 101) Like targt & "*" Then
            rw = rw + 1
            For ww = 1 To 102
                Y(rw, ww) = myArray(X, ww)
            Next ww
        End If
Next X
If rw > 0 Then SERCH.Cells(Rows.Count, 1).End(xlUp)(2, 1).Resize(rw, 102).Value = Y()
End Sub

الاستاذ ياسر العربي

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

ارجو اضافه شرح لاسطر الكود حتى يكون مرجعا للجميع

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

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • اضف...

Important Information