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

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

قام بنشر (معدل)

اريد تعديل هذا الكود

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

 

الكود موجود في شيت Picklist  عندما اقوم بنسخ الخليه C من شيت SerializePlantStockReport واضعها في شيت  Picklist الكود يعطيني الخانه E من شيت SerializePlantStockReport ويجب ان يكون شيت SerializePlantStockReport مفتوح . 

 

المطلوب تعديل الكود بحيث انسخ الخليه C من شيت Pick_List1 واضعها في شيت Picklist فيعطيني الخانه E ,F من شيت SerializePlantStockReport اذا كانت موجوده في شيت SerializePlantStockReport .

Downloads.rar

تم تعديل بواسطه khaled abdelgawad
  • تمت الإجابة
قام بنشر

السلام عليكم

أخي الكريم يراعى عند وضع الأكواد أن توضع بين أقواس الكود لتظهر بشكل منضبط

تفضل الكود التالي عله يكون المطلوب إن شاء العلي القدير

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("C1:F" & m).Value
    n = twb.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
    arr2 = twb.Sheets(1).Range("A1:C" & n).Value
    
    For s = 1 To n
        v = CStr(Trim(arr2(s, 1)))
        If d.exists(v) Then
            r0 = d(v)
        Else
            r0 = 0
        End If

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

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

 

قام بنشر

لربما يكون العنصر غير موجود أو أن البيانات غير صحيحة .. لأني لاحظت وجود مسافات زائدة .. قم بإزالة المسافات الزائدة وجرب مرة أخرى 

وجرب على عنصر تكون متأكد من تواجده

  • Like 1

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

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

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

Important Information