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

كيفية نقل نصوص من شيت إلى شيت بشرط


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

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

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

أرجو من حضراتكم معرفة كيف أنقل الوظيفة والقطاع والإداره إلى نوع التعاقد من شيت بيانات العاملين إلى شيت الإداره العامة بشرط خانة الإسم لأنني في حاجة ماسه لذلكالإدارة العامة 2023.xlsxبيان العاملين 21-9-2023.XLS

ولسيادتكم جزيل الشكر

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

  • أفضل إجابة

وعليكم السلام أخي الكريم

قم بتغيير اسم الملف المسمى بيانات العاملين 21-9-2023 إلى Employees DB أو قم بتغيير الاسم في الكود (كما يحلو لك)

ضع الكود التالي في الملف المسمى الإدارة العامة

Sub Test()
    Dim a, wb As Workbook, ws As Worksheet, sh As Worksheet, c As Range, dic As Object, sName As String, lr As Long
    Application.ScreenUpdating = False
        Set dic = CreateObject("Scripting.Dictionary")
        Set wb = Workbooks.Open(ThisWorkbook.Path & "\Employees DB.xls")
        Set ws = wb.Worksheets(1)
        Set sh = ThisWorkbook.ActiveSheet
        For Each c In ws.Range("C6:C" & ws.Cells(Rows.Count, "C").End(xlUp).Row)
            sName = c.Value
            If Not dic.Exists(sName) And sName <> Empty Then
                dic.Add sName, Array(c.Offset(0, 1).Value, c.Offset(0, 2).Value, c.Offset(0, 3).Value)
            End If
        Next c
        wb.Close SaveChanges:=False
        lr = sh.Cells(Rows.Count, "B").End(xlUp).Row
        sh.Range("E3:G" & lr).ClearContents
        For Each c In sh.Range("B3:B" & lr)
            sName = c.Value
            If dic.Exists(sName) Then
                a = dic(sName)
                c.Offset(, 3).Resize(, 3).Value = a
            End If
        Next c
    Application.ScreenUpdating = True
End Sub

 

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

سيدي الاستاذ/ ياسر خليل أبو البراء

أشكر حضرتك جدا على اجابتك الجميلة

ولكني أرجو من حضرتك أن تشرح لي الكود حتى أكمل باقي الخانات حتى أصل إلى خانة نوع التعاقد

ولك جزيل الشكر والامتنان 

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

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

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

dic.Add sName, Array(c.Offset(0, 1).Value, c.Offset(0, 2).Value, c.Offset(0, 3).Value)

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

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

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