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

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

قام بنشر

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

ارجو من اساتذتي الكرام خبراء الاكسل  مساعدتى فى تنفيذ هذا العمل

نبذه عن المطلوب

لدي شيت لحساب مرتبات العاملين ودائماا اقع فى الخطأ عند بلوغ احد الموظفين الي سن المعاش واكتشفها بعد عمل الكشوف حيث انه من الممكن ان يكون الموظف له هذا الشهر عدد ايام معينه وليس له مرتب كاملا 

ولذلك ارجو من خبراء الاكسل مساعدى لتجنب هذه الاخطاء

الملف به عمود مدون به الرقم القومي المطلوب

كود لاستخراج تاريخ الميلاد ثم اضافه 60 عام على تاريخ الميلاد ليصبح هو تاريخ البلوغ لسن المعاش بعد ذلك يتم عمل مقارنه بين تاريخ اليوم الموجود فى الخليه (C2) وتاريخ بلوغه الى سن المعاش

واذا كان يستحق صرف المرتب كاملا يترك الخليه امام اسمه فارغه واذا كان يستحق صرف عدد ايام  فى هذا الشهر يتم وضع عدد الايام التي يستحق الصرف عنها هذا الشهر فى العمود الخاص بذلك 

كما واضح فى المثال المرفق

1297877605_.PNG.df85430ffd9c8c95b723d430105bb3a2.PNG

سن المعاش.rar

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

قام بنشر
25 دقائق مضت, ali mohamed ali said:

هل هذا ما تقصده ؟

 

سن المعاش-1.xlsm

شكرا لاهتمامك استااذي الغالي

كدا قريب اوى من المطلوب

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

الناتج انت عامله عباره عن عدد الايام المتبقيه للموظف فى مدة الخدمه 

المطلوب اذا كان الموظف خارج على المعاش اثناء هذا الشهر مثلا يحسب عدد الايام له ليتم عمل مرتبه عن عدد ايام اثناء الشهر وان كان يستحق صرفه كاملا لا يكتب له شئ

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

قام بنشر

لا اعلم اذا نانت طريقة استحراج التاريخ من الرقم القومي صحيحة

لكن لنفرض ذلك

الكود

Option Explicit

Sub Calcul()

   If ActiveSheet.Name <> ("salim") Then Exit Sub
    Dim N As Range
    Dim R As Double
    Dim lr%, t$, x$
    
  ' -----------------------------------------------------
  lr = Cells(Rows.Count, 2).End(3).Row
    Range("c6:c" & lr).Formula = "=0+DATE(IF(LEFT($B6,1)=""2"",MID($B6,2,2),""20""&MID($B6,2,2)),MID($B6,4,2),MID($B6,6,2))+21915"
    For Each N In Range("C6:C" & lr)
            If N <> "" Then
 t = "=DATEDIF(" & "c2" & "," & """" & N & """" & ",""ym"")"
            N.Offset(0, 1).Formula = t
            End If
  x = "=DATEDIF(" & "c2" & "," & """" & N & """" & ",""md"")"
   N.Offset(0, 2).Formula = x
    Next
    Range("c6:E" & lr).Value = Range("c6:E" & lr).Value
 End Sub

الملف مرفق

صفحة salim

Salim_Salaire.xlsm

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

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

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

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

سجل حساب جديد

تسجيل دخول

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

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

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

Important Information