اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

إظهار أرقام الأسابيع بين تاريخين


Fmmm
إذهب إلى أفضل إجابة Solved by Moosak,

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

السلام عليكم 

الساده الأعضاء المحترمين 

اولا احب ان اشكر الساده الخبراء علي المساعده 

لدي نموذج تكمله لم سبق كان عندي سؤالين والساده الخبراء ما قصروا جزاهم الله عنا خير الجزاء 

اريد ان أظهر بين تواريخ الاجازه أرقام الأسابيع بحيث اقدر اعمل مقارنه مثل الرسم البياني بين الموظفين 

انا سوف اكمل عدد الأسابيع الي ٥٤ اريد الفتره بين تاريخ بداية إلاجازة وتاريخ نهايه الاجازه تظهر بلون مميز مثلا ممكن باستخدام التنسيق الشرطي لو الحقل في بيانات يظهر لون 

ده تخيلي مثل الرسم البياني هل يمكن تطبيق الفكره

وشكرا لحضرتكم

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

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

حسب فهمي .. هذه دالة تعطيها تاريخين فتعطيك أرقام الأسابيع للتاريخ الأول والأخير والأسابيع الواقعة بينهما :

Function ListWeekNumbers(startDate As Date, endDate As Date) As String

Dim WeekNumberForStartDate As Integer
Dim WeekNumberForEndDate As Integer
Dim x As Integer

' Assigning Week numbers for start and end days
WeekNumberForStartDate = DatePart("ww", startDate)
WeekNumberForEndDate = DatePart("ww", endDate)

' Listing all the weeks numbers in between
For x = WeekNumberForStartDate To WeekNumberForEndDate
    ListWeekNumbers = ListWeekNumbers & x & IIf(x <> WeekNumberForEndDate, ", ", "")
Next

'Debug.Print ListWeekNumbers
End Function

وطريقة عملها هكذا ( من تاريخ اليوم حتى 3/5/2023 ):

ListWeekNumbers(date , #5/3/2023# )

والناتج ( الأسابيع من 2 إلى 18 ) :

2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18

 

تم تعديل بواسطه Moosak
  • Like 1
رابط هذا التعليق
شارك

  • أفضل إجابة

تفضل أخي العزيز 🙂 

image.png.76eaf253f2e7d50ca4fb64409ff71fc8.png

عدلت لك الدالة بحيث أنك تعطيها تاريخ البداية وتاريخ النهاية ورقم الأسبوع لكل مربع نص .. والدالة ترجع قيمة رقمية 0 و 1 ... الصفر يعني أن هذا الأسبوع ليس من ضمن نطاق الإجازة ، والواحد من ضمن نطاق الإجازة .. وبعدها بالتنسيق الشرطي تلون المربعات التي بها 1 .. ويمكنك إخفاء الأرقام بتلوينها نفس مربعات النص 🙂 

وهذه هي الدالة :

Public Function IsWeekIn(StartDate As Date, Enddate As Date, ThisIsWeekNumber As Integer) As Integer
'هذه الدالة تقوم بكتابة 1 في الأسابيع الواقعة بين تاريخين و 0 للتي ليست ضمن نطاق التواريخ المعطاه

Dim WeekNumberForStartDate As Integer
Dim WeekNumberForEndDate As Integer

' Assigning Week numbers for start and end days
WeekNumberForStartDate = DatePart("ww", StartDate)
WeekNumberForEndDate = DatePart("ww", Enddate)

If ThisIsWeekNumber >= WeekNumberForStartDate And ThisIsWeekNumber <= WeekNumberForEndDate Then
    IsWeekIn = 1
Else
    IsWeekIn = 0
End If
End Function

وتكتبها كمصدر بيانات مربعات الأسبوع هكذا :

=IsWeekIn([Strdate];[Enddate];1)

لاحظ الرقم الأخير 1  هذا سيتغير لكل مربع من مربعات الأسابيع حسب رقم الأسبوع ( من 1 إلى 54 )

f6-Moosak.rar

  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

11 ساعات مضت, kkhalifa1960 said:

استكمالا لما قام به استاذنا موسى تفضل :fff:

f6-1.rar 42.86 kB · 3 downloads

شكرآ اخي الله يبارك فيك @kkhalifa1960

شكرآ اخي @Moosak بارك الله فيك 

كان نفس يكون أفضل اجابه للاثنين  بصراحه متشكر جدا لكم الله يسعدكم 

  • 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