Al Harthi قام بنشر يونيو 18, 2023 مشاركة قام بنشر يونيو 18, 2023 الاساتذه الكرام اتمنى نعاونكم بالتعديل او ايجاد معادله اخر في الملف المرفق . المطلوب :- عدد ايام الاجازاة المرضيه للموظف في كل شهر مثال 1- اذا خرج الموظفي الى اجازه مرضيه ورجع في نفس الشهر تكون عدد الايم في العمل الخاص لذالك الشهر . 2- اذا خرج الموظف في اجازه مرضيه من تاريخ 30/04/2023 الى 02/05/2023 اجمالي الايام 3 ايام المطلوب ان تقسم هذه الايام وتكون في كل شهر شهر اربعه 1 وفي شهر 5 يومين ) اتمنى باني وفقة في الشرح ولكم مني جزيل الشكر والامتنان SL Data.xlsx رابط هذا التعليق شارك More sharing options...
أبوأحـمـد قام بنشر يونيو 19, 2023 مشاركة قام بنشر يونيو 19, 2023 تم عمل لمطلوب =IF(MONTH($G5)=MONTH($F5);IF(MONTH($F5)=MONTH(I$3);$H5;"");IF(MONTH($F5)=MONTH(I$3);IF($H5+DAY($F5)>DAY(EOMONTH($F5;0));DAY(EOMONTH($F5;0))-DAY($F5)+1;$H5);IF(MONTH($G5)=MONTH(I$3);$H5-H5;""))) SL Data.xlsx 1 رابط هذا التعليق شارك More sharing options...
Al Harthi قام بنشر يونيو 19, 2023 الكاتب مشاركة قام بنشر يونيو 19, 2023 لك مني جزيل الشكر والتقدير ولكن واجهتني مشكله اذاالاجازه اكثر من شهرين المعادله لا تعمل بشكل صحبح تم تحديده باللون الاخظر SL Data (1).xlsx رابط هذا التعليق شارك More sharing options...
AbuuAhmed قام بنشر يونيو 19, 2023 مشاركة قام بنشر يونيو 19, 2023 عملت لك دالة vba لحساب أيام الإجازة لكل شهر جرب وأخبرني Option Explicit Function Between(Value As Date, MinVal As Date, MaxVal As Date) As Boolean Between = Value >= MinVal And Value <= MaxVal End Function Function GetVacDays(ByVal StartDate As Date, ByVal EndDate As Date, inMonth As Date) As Variant Dim MinVal As Date, MaxVal As Date Dim yy As Integer, mm As Byte yy = Year(inMonth) mm = Month(inMonth) MinVal = DateSerial(yy, mm + 0, 1) MaxVal = DateSerial(yy, mm + 1, 0) If Between(StartDate, MinVal, MaxVal) Or _ Between(EndDate, MinVal, MaxVal) Or _ Between(MinVal, StartDate, EndDate) Or _ Between(MaxVal, StartDate, EndDate) Then StartDate = IIf(StartDate > MinVal, StartDate, MinVal) EndDate = IIf(EndDate < MaxVal, EndDate, MaxVal) GetVacDays = CInt(EndDate - StartDate + 1) Else GetVacDays = "" End If End Function SL_Data_02.xlsm 1 رابط هذا التعليق شارك More sharing options...
أبوأحـمـد قام بنشر يونيو 19, 2023 مشاركة قام بنشر يونيو 19, 2023 6 ساعات مضت, Al Harthi said: لك مني جزيل الشكر والتقدير ولكن واجهتني مشكله اذاالاجازه اكثر من شهرين المعادله لا تعمل بشكل صحبح تم تحديده باللون الاخظر SL Data (1).xlsx 17.11 kB · 2 downloads =IF(MONTH(I$4)=MONTH($F5);IF($H5+DAY($F5)>DAY(EOMONTH($F5;0));DAY(EOMONTH($F5;0))-DAY($F5)+1;$H5);IF(AND(MONTH(I$4)>MONTH($F5);MONTH(I$4)<MONTH($G5));DAY(EOMONTH(I$4;0));IF(MONTH(I$4)=MONTH($G5);DAY($G5);""))) SL Data (1).xlsx 1 رابط هذا التعليق شارك More sharing options...
Al Harthi قام بنشر يونيو 20, 2023 الكاتب مشاركة قام بنشر يونيو 20, 2023 21 ساعات مضت, AbuuAhmed said: عملت لك دالة vba لحساب أيام الإجازة لكل شهر جرب وأخبرني Option Explicit Function Between(Value As Date, MinVal As Date, MaxVal As Date) As Boolean Between = Value >= MinVal And Value <= MaxVal End Function Function GetVacDays(ByVal StartDate As Date, ByVal EndDate As Date, inMonth As Date) As Variant Dim MinVal As Date, MaxVal As Date Dim yy As Integer, mm As Byte yy = Year(inMonth) mm = Month(inMonth) MinVal = DateSerial(yy, mm + 0, 1) MaxVal = DateSerial(yy, mm + 1, 0) If Between(StartDate, MinVal, MaxVal) Or _ Between(EndDate, MinVal, MaxVal) Or _ Between(MinVal, StartDate, EndDate) Or _ Between(MaxVal, StartDate, EndDate) Then StartDate = IIf(StartDate > MinVal, StartDate, MinVal) EndDate = IIf(EndDate < MaxVal, EndDate, MaxVal) GetVacDays = CInt(EndDate - StartDate + 1) Else GetVacDays = "" End If End Function SL_Data_02.xlsm 21.29 kB · 5 downloads للاسف استاذي الكريم الكود لا يعمل معي رابط هذا التعليق شارك More sharing options...
AbuuAhmed قام بنشر يونيو 20, 2023 مشاركة قام بنشر يونيو 20, 2023 (معدل) 19 دقائق مضت, Al Harthi said: للاسف استاذي الكريم الكود لا يعمل معي أنا قدمت لك كود ورفعت لك نفس المثال بعد تطبيق الدالة عليه وبه النتائج ظاهرة واضحة!! لك كل الحق أن تختار ما يناسبك أخي، أما الكود لا يعمل .. غريب "شويتين". موفق أخي. نسيت أنبهك أن تحول ملفك الأصل من xlsx إلى xlsm تم تعديل يونيو 20, 2023 بواسطه AbuuAhmed 1 رابط هذا التعليق شارك More sharing options...
أبوأحـمـد قام بنشر يونيو 21, 2023 مشاركة قام بنشر يونيو 21, 2023 تم التعديل على الملف ليكون أثر مرونة واحترافية أضفت ورقة اسمها العطل بإمكانك التحكم بالأيام والعطل الرسمية التي لا تريد احتسابها ضمن الإجازة في الصورة المرفقة تم تحديد الجمعة والسبت كعطلة نهاية الأسبوع وعدد من التواريخ كإجازات رسمية بالإمكان تعديلها أو حذفها SL Data (1000).xlsx رابط هذا التعليق شارك More sharing options...
الردود الموصى بها
من فضلك سجل دخول لتتمكن من التعليق
ستتمكن من اضافه تعليقات بعد التسجيل
سجل دخولك الان