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

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

قام بنشر

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

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

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

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

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

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

كود لاستخراج تاريخ الميلاد ثم اضافه 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

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