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

حساب عدد الايام الفعلية بدون الجمعة والسبت للعمل خارج وقت العمل الرسمي


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

اساتذتي الكرام 

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

ربنا مايحرمنا منكم ابداً ويزيدكم علماً كمان وكمان ويجعل عملكم خالص لوجهه تعالى ويجازيكم بعلمكم وعملكم ويضاعف اجركم ويرحم والدينا ووالديكم 

اخواني

كما هو مرفق ومبين في النموذج المرفق  انا عندي عمل برنامج خارج وقت الدوام لمجموعة موظفين وكل مجموعة لها عدد معين ممكن يزيد وممكن ينقص على 2 موظف ولكل مجموعة رقم تعميد وتاريخه هم الي بيحددوا الموظفين وتاريخ تعميدهم وعددهم احياناً يتطلب العمل العمل في كامل مدة الاسبوع اي مع الجمعة والسبت بحكم انهم ايام اجازة ولكن الغالب بدون يومي الجمعة والسبت وانا في البرنامج المرفق عاوز لما احدد بدون ايام الجمعة والسبت يروح يكتب عدد الايام في النموذج الفرعي انا مخفيش عليكم عملت استعلام وزبطت معايا في الاستعلام فكرة ازاي اعملة على النموذج والنموذج الفرعي .                               اسف جداً على الاطالة ولاكن للتوضيح خارج الدوام.rar

 

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

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

تفضل:

تم إضافة وحدة نمطية لحساب الأيام مع وبدون الجمعة والسبت

لم افهم ما الغرض من إضافة اسم الموظف ووو في جدول الحركات رغم ان هناك جدول لبيانات الموظف

العلاقات تم تغييرها لانها خاطئة

ما علاقة رقم التعميد؟ بالربط؟ اذا كان في جدول بيانات الموظف حقل أساسي هو الرقم الوظيفي

وبناء عليه يجب ان يكون الربط

عموما 

هذا ما طلبت مع بعض الإضافات

 

الانتدابات 0وخارج الدوام.rar

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

1 ساعه مضت, AlwaZeeR said:

م إضافة وحدة نمطية لحساب الأيام مع وبدون الجمعة والسبت

WSaturdays = DateDiff("ww", StartDate, EndDate, 7)
WFridays = DateDiff("ww", StartDate, EndDate, 1)

ممكن شرح لهذين السطرين
الرقم 7 هو يوم السبت
والرقم 1 هو يوم الأحد

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

تستطيع الاستغناء عن الأرقام باستخدام : VbFriday

وهكذا

لمعرفة ذلك ارجع بالسطر واحذف الفاصلة ثم ضعها وسوف يظهر لك الخيارات المتاحة والافتراضي يوم الاحد طبعا

 

 

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

لا أقصد ذلك

أنت تريد حساب عدد أيام السبت فجعلت بداية الأسبوع السبت و هو هنا =1

فلماذا عند حساب عدد أيام الجمعة استخدمت يوم الأحد و هو هنا = 7

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

WSaturdays = DateDiff("ww", StartDate, EndDate, 1)
WFridays = DateDiff("ww", StartDate, EndDate, 7)

النتيجة صحيحة: على اعتبار اننا نستثني يومين في الأسبوع ولكن:::::

انا مخطئ في وضع الأرقام :

على اعتبار ان بداية الأسبوع هي السبت 1

ونهاية الأسبوع هي الجمعة 7

:wallbash:

تم تعديل بواسطه AlwaZeeR
رابط هذا التعليق
شارك

لك أـستاذى فضل السبق فى هذه الوظيفة
لكن أعتقد أنها تكون هكذا
 

Public Function WorkDayCalc(StartDate, EndDate) As Integer
Dim WTotalDays As Integer
Dim WSaturdays As Integer
Dim WFridays As Integer

WorkDayCalc = 0
If IsDate(StartDate) And IsDate(EndDate) Then
        If EndDate <= StartDate Then
        WorkDayCalc = 0
    Else
       '  عدد الأيام بين التاريخين
        WTotalDays = DateDiff("d", StartDate, EndDate) + 1
    ' عدد الأسابيع بداية من السبت
        WSaturdays = DateDiff("ww", StartDate, EndDate, 7)
     '  عدد الأسابيع بداية من الجمعة
        WFridays = DateDiff("ww", StartDate, EndDate, 6)
    
        
        WorkDayCalc = WTotalDays - WSaturdays - WFridays
    End If
Debug.Print WFridays & " - " & WSaturdays & "  - " & WTotalDays & " -  " & WorkDayCalc
End If

 

تم تعديل بواسطه عبد الفتاح كيرة
  • Thanks 1
رابط هذا التعليق
شارك

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