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

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

قام بنشر

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

أرجو من حضراتكم معرفة كيف أنقل الوظيفة والقطاع والإداره إلى نوع التعاقد من شيت بيانات العاملين إلى شيت الإداره العامة بشرط خانة الإسم لأنني في حاجة ماسه لذلكالإدارة العامة 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

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

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

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

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

سجل حساب جديد

تسجيل دخول

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

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

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

Important Information