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

استدعاء بيانات بهذه الطريقة، يوجد ملف مرفق


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

أخي الحبيب الغالي ابن مصر

أعتقد أن الموضوع شبه مكرر (كان فيه موضوع مشابه لهذا الموضوع)

وحضرتك قدمت حل رائع بنفس الأسلوب (مراقبك وبضيف كل مفيد من ناحيتك)

بس لي تعقيب بسيط (الحلقات التكرارية المتداخلة مع البيانات الكثيرة يمكن أن تتسبب في ثقل تنفيذ الماكرو) وحضرتك سيد العارفين

فهذا حل آخر لإثراء الموضوع وليس كبديل من باب التنوع في الحلول

حل آخر مع الشرح (ويا ريت نبدأ بحملة الشرح لأي كود جديد أو مفيد أستاذي ابن مصر)

إليك الحل الآخر

Sub GetId()
    Dim Cell As Range, Rng As Range
    'سطر لتجنب الخطأ في حالة عدم العثور على نتائج
    On Error Resume Next
    'تعيين نطاق البيانات في ورقة البيانات الرئيسية
    Set Rng = Sheet1.Range("B3:C" & Sheet1.Cells(Rows.Count, 2).End(xlUp).Row)
    'عمل حلقة تكرارية لكل خلية من خلايا النطاق المراد إظهار النتائج به ، في العمود الثالث
    For Each Cell In Sheet2.Range("C4:C" & Sheet2.Cells(Rows.Count, 2).End(xlUp).Row)
        'قيمة الخلية تساوي نتيجة البحث عن الخلية المجاورة في نطاق البيانات ، ويكون الحبث في خانة العمود الثاني
        Cell.Value = Application.WorksheetFunction.VLookup(Cell.Offset(0, -1), Rng, 2, False)
    Next Cell
End Sub


بدون ملف مرفق متعمداً حتى تستطيع أخي شكيب بدء التعامل مع الأكواد وكيفية تطبيقها بنفسك

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

أخي الحبيب ابن مصر

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

 

Comaprison.rar

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

أخي الغالي ابن مصر

جرب الكود التالي المستخدم لحساب وقت تنفيذ الكود

Sub CodeExecutionTime()
    Dim xStartTime As Double
    Dim xElapsedTime As Double
    xStartTime = Timer()
  
    'ضع الإجراء الفرعي المراد حساب وقت التنفيذ له
    Call Test
    
    xElapsedTime = Timer() - xStartTime
        If xElapsedTime < 0# Then
            xElapsedTime = xElapsedTime + 86400#
        End If
    MsgBox "الوقت المنقضي في تنفيذ الكود بالثواني هو : " & xElapsedTime
End Sub

ضع الكود بموديول جديد واستبدل كلمة Test باسم الإجراء الفرعي المراد حساب وقت التنفيذ له

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

تقبل تحياتي :wink2:

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information