اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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


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

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

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

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

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

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

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

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

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
رابط هذا التعليق
شارك

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.

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

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

Important Information