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

كود للمقارنه بين شيتين


إذهب إلى أفضل إجابة Solved by ياسر خليل أبو البراء,

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

لدي كود متكرر اكثر من مرة في العمود ( C ) وعند عمل VLOOK UP  يختار الخانه الاولي المقابله له من العمود E هل هناك طريقه يختار بها في كل مرة خانه مختلفه من العمود E ؟ 

Untitled.jpg

SerializePlantStockReport.rar

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

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

 

اريد ان اقوم بهذه المعادله في شيت اخر فيظهر لي الاكواد التاليه 

كيف استخدم هذه المعادله في شيت وياخذ البيانات من الشيت الاخر ؟

Untitled.jpg

Desktop.rar

عند عمل معادلة في لوكب ياخذ فقط الخانه الاولي هل يوجد معادله اخري غير الفي لوكب تاخذ في كل مرة خانه مختلفه ارجو ان اكون قادر علي توصيل السؤال ز

 

 

 

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

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

إذا كنت تريد المعادلة في ملف آخر والملف الأصلي مفتوح استخدم المعادلة التالية

=INDEX(SerializePlantStockReport.xlsx!E$2:E$26,RANDBETWEEN(2,26))

إذا لم تكن المعادلة تلبي الغرض يرجى مزيد من التوضيح ووضع بعض النتائج المتوقعة ...

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

 ياسر خليل أبو البراء    جزاكم الله خيرا اخي الحبيب 

 

قمت بارفاق ملف فيه توضيح اكثر عن المعادله التي اريدها 

 

ز

Untitled.jpg

Downloads.rar

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

وعليكم السلام

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

ما هو المنطق في عملية البحث .. وهل سيكون الملف الأول مفتوح أم مغلق حين إجراء عملية البحث ..؟

لابد من الإجابة على هذه التساؤلات أولاً

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

سيكون الملف مفتوح والمطلوب البحثن عن الارقام في الملف الاول ووضعها في الملف الثاني مع عدم تكرار الارقام  واريد الارقام التي نريد وضعها في الملف الثاني بنفس الترتيب الموجود في الشيت الاول .

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

  • أفضل إجابة

أخي الكريم خالد جرب الكود التالي عله يفي بالغرض (طبعاً يوضع الكود في المصنف المسمى PickList) ويحفظ بامتداد xlsm ... قم بفتح الملف الأول والملف الجديد الذي قمت بحفظه بامتداد xlsm ونفذ الكود وستظهر النتائج في العمود الثاني في الملف الجديد المسمى PickList.xlsm

Sub Test()
    Dim swb         As Workbook
    Dim twb         As Workbook
    Dim arr1        As Variant
    Dim arr2        As Variant
    Dim v           As Variant
    Dim d           As Object
    Dim m           As Long
    Dim n           As Long
    Dim r0          As Long
    Dim r           As Long
    Dim s           As Long
    Dim c           As Long

    Set swb = Workbooks("SerializePlantStockReport.xlsx")
    Set twb = ThisWorkbook
    
    Set d = CreateObject("Scripting.Dictionary")
    m = swb.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
    arr1 = swb.Sheets(1).Range("C2:E" & m).Value
    n = twb.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
    arr2 = twb.Sheets(1).Range("A2:B" & n).Value

    For s = 1 To n - 1
        v = arr2(s, 1)
        If d.exists(v) Then
            r0 = d(v)
        Else
            r0 = 0
        End If

        For r = r0 + 1 To m
            If arr1(r, 1) = v Then
                arr2(s, 2) = CStr(arr1(r, 3))
                d(v) = r
                Exit For
            End If
        Next r
    Next s

    twb.Sheets(1).Range("A2:B" & n).Value = arr2
End Sub

 

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

  • 2 weeks later...

الان واجهتني مشكله هل يمكن ان اكتب الرقم بدل من ان انسخه في الشيت ؟

عندما اقوم بكتابة الرقم في ملف PickList لا يعمل الكود لازم اخده كوبي من الشيت الاخر SerializePlantStockReport 

هل يمكن تعديل الكود بحيث ان اكتب الرقم او انسخه من شيت اخر غير SerializePlantStockReport ؟

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

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

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

أنا نسيت الموضوع .. أيوا والله زي ما بقولك كدا 

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

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

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

Important Information