دوال تقويم أم القرى لل VBA


كاتب الموضوع
أبوالحارث
عضو نشيط
مشاركات: 127
اشترك في: جمادى الآخرة 1434

دوال تقويم أم القرى لل VBA

مشاركة بواسطة أبوالحارث » السبت 26 شعبان 1436هـ (13-6-2015م) 8:09 pm

هذه دوال تقويم أم القرى للغة VBA عملتها حسب طلب الأخ أواب في المنتدى
بإمكانك عمل استيراد لملف المديول لأي برنامج من برامج الأوفيس أو حتى لأي برنامج VB6
وعمل الدوال هو نفس عملها في لغة vba الأصلية والأسماء مطابقة لأسماء الدوال في لغة vba مع إضافة UQ قبل اسم الدالة، وإذا وفق الله سأعمل أمثلة

سجل التعديلات:
  • v1.0.1
    • تصويب لعمل الدالة UQDateadd
  • v1.0.3
    • إصلاح لثغرة خطيرة في التحويل من تاريخ يحتوي على ساعات إلى هجري
المرفقات
modUmAlQura_1.0.3.zip
(6.7 KiB) حُمِّل 37 مرةً




أواب
مشاركات: 9
اشترك في: شعبان 1436

رد: دوال تقويم أم القرى لل VBA

مشاركة بواسطة أواب » الأحد 27 شعبان 1436هـ (14-6-2015م) 12:55 am

أخي الكريم أبا الحارث

أعجز عن شكرك، فأنت مثال لقول الرسول صلى الله عليه وسلم (خير الناس أنفعهم للناس).

أعانك الله .. ونحن في انتظار الأمثلة
أو على الأقل شرح استخدام دالة date2UQ

بارك الله فيك وفتح لك أبواب رزقه


كاتب الموضوع
أبوالحارث
عضو نشيط
مشاركات: 127
اشترك في: جمادى الآخرة 1434

رد: دوال تقويم أم القرى لل VBA

مشاركة بواسطة أبوالحارث » الأحد 27 شعبان 1436هـ (14-6-2015م) 10:42 am

الأصل في عمل الدالة date2UQ هو داخلي من أجل إرجاع تاريخ أم القرى من متغير من نوع date مثال:

كود: تحديد الكل

date2UQ date(),hy,hm,hd,hz 
debug.print hd & "/" & hm & "/" & hy & "هـ"
فهذا يرجع تاريخ اليوم بالهجري
وhz هو رقم اليوم في السنة
ولاحظ أن كل المتغيرات إجبارية وإن لم تستعملها
لتحويل تاريخ يوم معين إلى هجري

كود: تحديد الكل

date2UQ cdate("2015-1-1"),hy,hm,hd,hz 
debug.print hd & "/" & hm & "/" & hy & "هـ"
أو

كود: تحديد الكل

date2UQ dateserial(2015,1,1),hy,hm,hd,hz 
debug.print hd & "/" & hm & "/" & hy & "هـ"
لتخزين تاريخ (تقويم أم القرى) معين في متغير من نوع date

كود: تحديد الكل

mydate = UQdateserial(1436,9,1) 
لعرض أي متغير تاريخ بتقويم أم القرى

كود: تحديد الكل

 mystr=UQFormat(mydate,"Long Date") 
وإذا كنت تريد تاريخ اليوم

كود: تحديد الكل

 mystr=UQFormat(date,"Long Date") 


أواب
مشاركات: 9
اشترك في: شعبان 1436

رد: دوال تقويم أم القرى لل VBA

مشاركة بواسطة أواب » الأحد 27 شعبان 1436هـ (14-6-2015م) 11:15 am

بارك الله فيك

اتضحت الصورة الآن

ولكن ماذا عن تحويل التاريخ الهجري (أم القرى) إلى ميلادي؟

أشعر أنني أثقلت عليك .. ولكن في ميزان حسناتك إن شاء الله


كاتب الموضوع
أبوالحارث
عضو نشيط
مشاركات: 127
اشترك في: جمادى الآخرة 1434

رد: دوال تقويم أم القرى لل VBA

مشاركة بواسطة أبوالحارث » الأحد 27 شعبان 1436هـ (14-6-2015م) 1:27 pm

استعمل الدالة UqDateSerial لإنشاء متغير date معتمد على تقويم أم القرى ثم استعمل دوال التاريخ الاعتيادية في VBA مع مراعاة أن يكون الخاصية Calendar مضيوطة على vbCalGreg
هذا مثال:

كود: تحديد الكل

Dim d As Date
d = UQDateSerial(1436, 9, 1)
Calendar = vbCalGreg
Debug.Print "أول رمضان هذه السنة يوافق " & Format(Date, "Short Date")


أواب
مشاركات: 9
اشترك في: شعبان 1436

رد: دوال تقويم أم القرى لل VBA

مشاركة بواسطة أواب » الأحد 27 شعبان 1436هـ (14-6-2015م) 6:27 pm

أنت رائع

رحم الله والديك


أواب
مشاركات: 9
اشترك في: شعبان 1436

Re: دوال تقويم أم القرى لل VBA

مشاركة بواسطة أواب » الأربعاء 9 ذو الحجة 1436هـ (23-9-2015م) 2:01 am

أخي الكريم أبو الحارث

بعد انقطاع رجعت إلى المديول ولكن ظهر لي خطأ عند استخدام دالة UQDateAdd

كود: تحديد الكل

    Case "q"
       date2UQ theDate, hy, hm, hd, hz
       myDate = UQDateSerial(hy, hm + (number * 3), hd)
يتم تحديد hy ويظهر الخطأ التالي:
Compile error:
ByRef argument type mismatch


أواب
مشاركات: 9
اشترك في: شعبان 1436

Re: دوال تقويم أم القرى لل VBA

مشاركة بواسطة أواب » السبت 26 ذو الحجة 1436هـ (10-10-2015م) 2:17 am

أطمع في مساعدتك أخي الكريم


كاتب الموضوع
أبوالحارث
عضو نشيط
مشاركات: 127
اشترك في: جمادى الآخرة 1434

Re: دوال تقويم أم القرى لل VBA

مشاركة بواسطة أبوالحارث » الاثنين 28 ذو الحجة 1436هـ (12-10-2015م) 10:08 am

جزاك الله خيرا على التنبيه
تم التعديل في الإصدار الجديد


كاتب الموضوع
أبوالحارث
عضو نشيط
مشاركات: 127
اشترك في: جمادى الآخرة 1434

Re: دوال تقويم أم القرى لل VBA

مشاركة بواسطة أبوالحارث » الثلاثاء 29 ذو الحجة 1436هـ (13-10-2015م) 9:14 am

مثال لاستعمال المديول في برنامج vb6
umalqura.zip
(37.92 KiB) حُمِّل 305 مرات

أضف رد جديد