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


كاتب الموضوع
أبوالحارث
عضو نشيط
مشاركات: 152
اشترك في: مايو 2013

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

مشاركة بواسطة أبوالحارث »

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

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

أواب
مشاركات: 16
اشترك في: يونيو 2015

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

مشاركة بواسطة أواب »

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

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

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

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

كاتب الموضوع
أبوالحارث
عضو نشيط
مشاركات: 152
اشترك في: مايو 2013

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

مشاركة بواسطة أبوالحارث »

الأصل في عمل الدالة 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") 

أواب
مشاركات: 16
اشترك في: يونيو 2015

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

مشاركة بواسطة أواب »

بارك الله فيك

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

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

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

كاتب الموضوع
أبوالحارث
عضو نشيط
مشاركات: 152
اشترك في: مايو 2013

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

مشاركة بواسطة أبوالحارث »

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

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

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

أواب
مشاركات: 16
اشترك في: يونيو 2015

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

مشاركة بواسطة أواب »

أنت رائع

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

أواب
مشاركات: 16
اشترك في: يونيو 2015

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

مشاركة بواسطة أواب »

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

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

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

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

أواب
مشاركات: 16
اشترك في: يونيو 2015

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

مشاركة بواسطة أواب »

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

كاتب الموضوع
أبوالحارث
عضو نشيط
مشاركات: 152
اشترك في: مايو 2013

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

مشاركة بواسطة أبوالحارث »

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

كاتب الموضوع
أبوالحارث
عضو نشيط
مشاركات: 152
اشترك في: مايو 2013

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

مشاركة بواسطة أبوالحارث »

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