كل الانشطه
- Yesterday
-
اضافة شريط تعديل الخط وتعديل ايقونة حفظ المعلومات
بلال بلال replied to بلال بلال's topic in قسم الأكسيس Access
السلام عليكم أستاذ الفاضل نموذج General_Report هو من اريد ان يتغيير اللون والخط في حقول Conclusion و حقل PracticalValueEstimation استاذ وادراج الارقام اليك الصورة نكما هو في نموذج مصغر للفكرة Nouveau Image bitmap (3).bmp -
في هذا الموضوع سنستعرض دالتين احترافيتين CountWeekday – لحساب عدد أيام محددة بين تاريخين CalculateMonthStats – لحساب إحصائيات شهرية لأي فترة زمنية الدوال مرنة، سريعة، وصحيحة حتى في الفترات الطويلة، ويمكن استخدامها لأي يوم من أيام الأسبوع وليس فقط الجمعة والسبت تعريف أيام الأسبوع Public Enum WeekDays wdSunday = 1 wdMonday = 2 wdTuesday = 3 wdWednesday = 4 wdThursday = 5 wdFriday = 6 wdSaturday = 7 End Enum دالة CountWeekday تحسب عدد أي يوم تختاره بين تاريخين مرنة: يمكن استخدامها لحساب أيام الأحد، الإثنين، الأربعاء، الجمعة … إلخ. سريعة وفعّالة دون الحاجة لتكرار كل يوم في الفترة. تتعامل مع التاريخ بشكل صحيح . الكود Public Function CountWeekday( _ ByVal StartDate As Date, _ ByVal EndDate As Date, _ ByVal TargetDay As WeekDays) As Long Dim TotalDays As Long, BaseCount As Long, ExtraDays As Long Dim FirstDay As Long, Offset As Long If StartDate > EndDate Then Exit Function TotalDays = DateDiff("d", StartDate, EndDate) + 1 If TotalDays <= 0 Then Exit Function BaseCount = TotalDays \ 7 ExtraDays = TotalDays Mod 7 FirstDay = Weekday(StartDate, vbSunday) Offset = (TargetDay - FirstDay + 7) Mod 7 CountWeekday = BaseCount If Offset < ExtraDays Then CountWeekday = CountWeekday + 1 End Function ------ دالة CalculateMonthStats تحسب إحصائيات الشهر: عدد الأيام الإجمالي عدد أيام الجمعة والسبت (يمكن تعديلها لأي أيام أخرى) عدد أيام العمل (باقي الأيام) الكود Public Type TMonthStats MonthName As String CalendarYear As Long FridayCount As Long SaturdayCount As Long TotalDays As Long WorkingDays As Long End Type Public Const MONTH_NAMES_AR As String = "يناير,فبراير,مارس,ابريل,مايو,يونيو,يوليو,أغسطس,سبتمبر,اكتوبر,نوفمبر,ديسمبر" Public Function GetArabicMonthName(ByVal MonthNumber As Long) As String Static arrMonths As Variant If IsEmpty(arrMonths) Then arrMonths = Split(MONTH_NAMES_AR, ",") If MonthNumber >= 1 And MonthNumber <= 12 Then GetArabicMonthName = arrMonths(MonthNumber - 1) End Function Public Function CalculateMonthStats( _ ByVal StartDate As Date, _ ByVal EndDate As Date, _ ByVal MonthNumber As Long, _ ByVal YearNumber As Long) As TMonthStats Dim result As TMonthStats result.MonthName = GetArabicMonthName(MonthNumber) result.CalendarYear = YearNumber result.TotalDays = DateDiff("d", StartDate, EndDate) + 1 result.FridayCount = CountWeekday(StartDate, EndDate, wdFriday) result.SaturdayCount = CountWeekday(StartDate, EndDate, wdSaturday) result.WorkingDays = result.TotalDays - result.FridayCount - result.SaturdayCount CalculateMonthStats = result End Function مميزات الدوال مرنة: تعمل لأي يوم تختاره سريعة وفعالة: تعتمد على القسمة والحسابات الرياضية صحيحة للفترات الطويلة: سواء أيام، أشهر أو سنوات تحقق تلقائي: لا تنتج أخطاء إذا كان تاريخ البداية أكبر من النهاية سهل التعديل: يمكن استخدام CountWeekday لحساب أيام محددة أخرى داخل CalculateMonthStats الفكرة العامة: باستخدام هاتين الدالتين، يمكنك: حساب عدد أي يوم من أيام الأسبوع بين تاريخين. بناء تقارير شهرية مع إحصاءات كاملة لأيام العمل والعطلات. التحكم الكامل في تحديد أيام العطلات أو الأيام المستثناة حسب الحاجة. وممكن التجربة من خلال الاكواد التالية '------------------------------------------------- ' اختبار حساب عدد أيام يوم محدد في فترة '------------------------------------------------- Public Sub TestCountSingleWeekday() Dim StartDate As Date Dim EndDate As Date Dim TargetDay As WeekDays Dim Count As Long ' مثال: من 1 مارس 2025 إلى 31 مارس 2025 StartDate = DateSerial(2025, 3, 1) EndDate = DateSerial(2025, 3, 31) ' اليوم المطلوب: الجمعة TargetDay = wdFriday ' حساب عدد الأيام Count = CountWeekday(StartDate, EndDate, TargetDay) ' طباعة النتيجة في النافذة الفورية Debug.Print "==============================" Debug.Print "اختبار CountWeekday:" Debug.Print "الفترة من: " & FormatDateValue(StartDate) Debug.Print "إلى: " & FormatDateValue(EndDate) Debug.Print "اليوم المطلوب: " & WeekdayName(TargetDay) Debug.Print "عدد الأيام: " & Count Debug.Print "==============================" End Sub '------------------------------------------------- ' اختبار حساب أكثر من يوم (مثلاً الجمعة والسبت) '------------------------------------------------- Public Sub TestCountMultipleWeekdays() Dim StartDate As Date Dim EndDate As Date Dim FridayCount As Long Dim SaturdayCount As Long ' مثال: من 1 أبريل 2025 إلى 30 أبريل 2025 StartDate = DateSerial(2025, 4, 1) EndDate = DateSerial(2025, 4, 30) ' حساب كل يوم على حدة FridayCount = CountWeekday(StartDate, EndDate, wdFriday) SaturdayCount = CountWeekday(StartDate, EndDate, wdSaturday) ' طباعة النتائج Debug.Print "==============================" Debug.Print "اختبار CountWeekday لعدة أيام:" Debug.Print "الفترة من: " & FormatDateValue(StartDate) Debug.Print "إلى: " & FormatDateValue(EndDate) Debug.Print "عدد أيام الجمعة: " & FridayCount Debug.Print "عدد أيام السبت: " & SaturdayCount Debug.Print "==============================" End Sub '------------------------------------------------- ' اختبار حساب كامل إحصاءات الشهر '------------------------------------------------- Public Sub TestCalculateMonthStats() Dim Stats As TMonthStats Dim StartDate As Date Dim EndDate As Date ' مثال: مارس 2025 كامل StartDate = DateSerial(2025, 3, 1) EndDate = DateSerial(2025, 3, 31) Stats = CalculateMonthStats(StartDate, EndDate, Month(StartDate), Year(StartDate)) ' طباعة النتائج Debug.Print "==============================" Debug.Print "اختبار CalculateMonthStats:" Debug.Print "الشهر: " & Stats.MonthName & " - " & Stats.CalendarYear Debug.Print "إجمالي الأيام: " & Stats.TotalDays Debug.Print "أيام الجمعة: " & Stats.FridayCount Debug.Print "أيام السبت: " & Stats.SaturdayCount Debug.Print "أيام العمل: " & Stats.WorkingDays Debug.Print "==============================" End Sub '================================================= ' دالة اختبار عدد أيام أي يوم من الأحد إلى الخميس '================================================= Public Sub TestCountWeekdaysOtherThanFriSat() Dim StartDate As Date Dim EndDate As Date Dim TargetDay As WeekDays Dim Count As Long ' مثال للفترة: من 1 مارس 2025 إلى 31 مارس 2025 StartDate = DateSerial(2025, 3, 1) EndDate = DateSerial(2025, 3, 31) Debug.Print "==============================" Debug.Print "اختبار CountWeekday للأيام غير الجمعة والسبت:" Debug.Print "الفترة من: " & FormatDateValue(StartDate) Debug.Print "إلى: " & FormatDateValue(EndDate) ' التجربة لجميع الأيام من الأحد إلى الخميس For TargetDay = wdSunday To wdThursday Count = CountWeekday(StartDate, EndDate, TargetDay) Debug.Print WeekdayName(TargetDay) & ": " & Count Next TargetDay Debug.Print "==============================" End Sub '================================================= ' دالة اختبار عدد أيام أي يوم من الأحد إلى الخميس (باستثناء الثلاثاء) '================================================= Public Sub TestCountWeekdaysExceptTuesday() Dim StartDate As Date Dim EndDate As Date Dim TargetDay As WeekDays Dim Count As Long ' الفترة الزمنية للاختبار StartDate = DateSerial(2025, 3, 1) EndDate = DateSerial(2025, 3, 31) Debug.Print "==============================" Debug.Print "اختبار CountWeekday للأيام الأحد-الإثنين-الأربعاء-الخميس (باستثناء الثلاثاء)" Debug.Print "الفترة من: " & FormatDateValue(StartDate) Debug.Print "إلى: " & FormatDateValue(EndDate) ' التجربة لجميع الأيام من الأحد إلى الخميس مع استثناء الثلاثاء For TargetDay = wdSunday To wdThursday If TargetDay <> wdTuesday Then Count = CountWeekday(StartDate, EndDate, TargetDay) Debug.Print WeekdayName(TargetDay) & ": " & Count End If Next TargetDay Debug.Print "==============================" End Sub اطيب الامانى
-
- 1
-
-
- مرات تكرار أي يوم
- إحصاءات شهر محدد
- (و10 أكثر)
-
في ظل التفاعل المتواضع ، تم اعتماد الفكرة :- 2️⃣ إنشاء نظام تسجيل دخول احترافي برمجياً ، مع نظام صلاحيات متعدد المستويات .. للتطبيق والتنفيذ وطرحها في موضوع مستقل إن شاء الله . شكراً من القلب لكل من تفاعل ولكل من مر من هنا . سيتم الإعلان عن الفكرة والمطلوب تنفيذها وشروطها وجميع معطياتها في موضوع قريب منفصل
-
اضافة شريط تعديل الخط وتعديل ايقونة حفظ المعلومات
kkhalifa1960 replied to بلال بلال's topic in قسم الأكسيس Access
استاذ @بلال بلال اليك المرفق المقترح كامل ولكي نكمل طلبك عليك بكل نموذج تضع (*) حمراء بجوار كل (كمبوبكس أو تكستبكس أو لابل ) للذي تريد عليه تغيير اللون والخط و ......... ورجعه لي بعد تحدد لاتمام العمل ........ واي تعديلات تريدها . Bilal_Yamen_New.rar -
أخي الفاضل بعد تطبيق الملف عندي وإضافة نماذج أخري عند التشغيل واختيار في نموذج الدخول ( سعد محمد ) يدخل علي الشاشة الرئيسية وعند الضغط مثلا علي زر التلاميذ تأتي الرسالة ويقف المؤشر علي كلمة InputBoxDK وكمان التكست الملونة لا يظهر رقم اليوزر
-
دى الاجابة اللى اوصى بيها حساب الجمعة والسبت(V3).accdb
-
طيب ولان كلمة حساب فى المطلق كانت تحتمل العديد من الاحتمالات مثلما اشار الاستاذ : ابوخليل ولانى جاوبت اجابة قد تحتمل الخطا ولكن بما انها صادفت انها هى الاجابة المرغوبة ابشر سوف اقدم واعيد الاجابة بشكل اكثر احترافية ولكن اولا دعنى اقدم لكم نصيحة الى ان انتهى من عمل الاجابة بالشكل اللائق حاول دائما تسمية الحقول والجداول بشكل احترافى
-
للاسف 95 بس ما تكفى ولا توفى 1+1=2 ما يصير نقول ونحكى ان 1+1 ممكن =1.95 ونستدل بمثل زى ده على هذه الحالة تحياتى
-
اركان الاسلام started following طلب مساعدة فى كود حماية
-
السلام عليكم ورحمه الله وبركاته اخواني الاعزاء محتاج كود لشيت اكسيل هبعته لعميل السيناريو المطلوب اول ثلاث ايام فترة تجريببه ثم يطلب كود تفعيل وفى حالة نقل الشيت الى جهاز اخر يطلب كود تفعيل جديد نفس فكرة البرامج الجهازه فترة تجريبيه بعدها تفعيل وحماية من النقل
-
الف شكرا لحضرتك استاذ خليفة وبارك الله فيك وأكثر الله من أمثالك وغفر الله لك ذنبك وزادك الله من علمه الذي لا ينضب
-
يقول المثل : ما لا يُدرك جُلُه .. لا يُترَك كُلُه 😄🖐️ وبعدين 95% نسبة حلوة تخش بيها كلية الهندسة إن شاء الله 😅
-
⏳ باقي من الوقت ساعات قليلة حتى نهاية وقت الإستفتاء ..
-
ماشاء الله زادك الله علماً ورفع الله قدرك ورزقك الله الفردوس الأعلى من الجنة
-
firstelevators joined the community
-
حفظ الملف الجديد بامتداد XLSM أو XLSB
عبدالله بشير عبدالله replied to عادل جلال's topic in منتدى الاكسيل Excel
جرب التعديل التالي لا ننس كتابة اسم الملف في الحلية A2 الكل (1) (2).xlsm لا حرج ان اردت اي تعديل احر -
ماشاء الله إضافة لو أمكن ورقة العمل الجديدة اسمها سوف يوجد فى الخلية a2 هل يمكن التسمية مباشر الورقة الجديدة تكون بالامتداد الجديد مباشر دون مشاهدة عملية الحفظ الحفظ يكون فى نفس مسار الملف القديم اعلم أننى اثقلت على حضرتك
-
حفظ الملف الجديد بامتداد XLSM أو XLSB
عبدالله بشير عبدالله replied to عادل جلال's topic in منتدى الاكسيل Excel
اليك التعديل الكود يحفظ بامتداد XLSB اذا اردته XLSM قم بتغيير XLSB الى XLSM + تغيير 50 الى 52 الكل (1).xlsm -
حفظ الملف الجديد بامتداد XLSM أو XLSB
عبدالله بشير عبدالله replied to عادل جلال's topic in منتدى الاكسيل Excel
ان شاء الله ساقوم بالتعديل على الكود -
تمام اريد التعديل على الكود فقط
-
حفظ الملف الجديد بامتداد XLSM أو XLSB
عبدالله بشير عبدالله replied to عادل جلال's topic in منتدى الاكسيل Excel
يشمل كل عملية حفظ واعتقد انك تريد التعديل على الكود ليحفظ بامتداد XLSM أو XLSB هل الامركذلك -
الأخ الكريم / عبدالله بشير عبدالله كل عام وحضرتك بخير وجزاكم الله خير الجزاء سؤال هل هذا التعديل يشمل كل عملية حفظ للأكسيل عموما أم الملف الورفق ؟ - اود يكون التعديل على الكود فقط إن أمكن -
-
جمع الأرقام الموجبة الظاهرة في القائمة دون المخفية
عبدالله بشير عبدالله replied to الموسطي's topic in منتدى الاكسيل Excel
السلام عليكم ورحمة الله وبركاته كان من الافضل ارفاق ملف للتطبيق عليه جرب الملف المرفق ببيانات افتراضية في النطاق A2:A100 ومعادلة الجمع في الخلية D2 ,DL ويمكنك نسحها الى اي خلية اخرى =IFERROR(SUMPRODUCT((A2:A100>0)*(SUBTOTAL(103;OFFSET(A2;ROW(A2:A100)-MIN(ROW(A2:A100));0)))*(A2:A100));0) جمع الأرقام الموجبة فقط الظاهرة دون المخفية.xlsx -
مفيش حاجة اسمها كده بنسبة ونضرب رقم فى حاجة اسمها فى وميض اهتزاز رعشة او مفيش ودى مشكلة ازلية فى الاكسس مالهاش اى علاج
-
عبدالله بشير عبدالله started following حفظ الملف الجديد بامتداد XLSM أو XLSB
-
حفظ الملف الجديد بامتداد XLSM أو XLSB
عبدالله بشير عبدالله replied to عادل جلال's topic in منتدى الاكسيل Excel
وعليكم السلام ورحمة الله وبركاته اضغط على قائمة ملف (File). اختر خيارات (Options) . من النافذة التي ستظهر، اختر تبويب حفظ (Save) . ابحث عن خيار حفظ المصنفات كما بالصورة ثم موافق -
لدي قائمة أرقام موجبة وسالبة وبعضها مخفية، أريد دالة جمع الأرقام الموجبة فقط الظاهرة دون المخفية
-
اى خدمة