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

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

قام بنشر

السلام عليكم

عندما أريد أن أجمع المبلغ بين فترتين من تاريخ إلى تاريخ لا يضبط معي؟

عن طريق المعادلات مضبوط 100% لكن المشكلة عندما أستخدم VBA لا يضبط؟ هل من مساعدة وجزاكم الله خير

 

 

SUMIFS_VBA_img.png

SUMIFS_VBA.xlsm

  • تمت الإجابة
قام بنشر

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

المشكلة الأساسية في الكود تكمن في طريقة التعامل مع تنسيق التاريخ. في VBA، عندما نستخدم SumIfs مع التواريخ، يفضل تمرير التاريخ كقيمة رقمية (Long)  اذا كانت الكميات ارقام صثحيحة و Double بدلاً من Long تحسباً لوجود كسور في الكميات (إذا كانت الكمية تحتوي على فواصل عشرية ) ، لأن تحويله إلى نص (String) مثل "MM/dd/yyyy" قد يتسبب في عدم تطابق البيانات إذا كان إعداد التاريخ في الجهاز مختلفاً.

جرب التعديل بالملف المرفق

SUMIFS_VBA.xlsm

 

 

قام بنشر
47 دقائق مضت, عبدالله بشير عبدالله said:

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

المشكلة الأساسية في الكود تكمن في طريقة التعامل مع تنسيق التاريخ. في VBA، عندما نستخدم SumIfs مع التواريخ، يفضل تمرير التاريخ كقيمة رقمية (Long)  اذا كانت الكميات ارقام صثحيحة و Double بدلاً من Long تحسباً لوجود كسور في الكميات (إذا كانت الكمية تحتوي على فواصل عشرية ) ، لأن تحويله إلى نص (String) مثل "MM/dd/yyyy" قد يتسبب في عدم تطابق البيانات إذا كان إعداد التاريخ في الجهاز مختلفاً.

جرب التعديل بالملف المرفق

SUMIFS_VBA.xlsm 20.8 kB · 1 download

 

 

بارك الله فيك وجزاك الله خير الجزاء

إجابتك ليست حل للمشكلة بل توصيف لمكمن الخطأ حتى نتفاداه في أيامنا المقبلة

 

جزيل الشكر لك أخ عبدالله 🌹

  • Like 1
قام بنشر
2 ساعات مضت, عبدالله بشير عبدالله said:

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

المشكلة الأساسية في الكود تكمن في طريقة التعامل مع تنسيق التاريخ. في VBA، عندما نستخدم SumIfs مع التواريخ، يفضل تمرير التاريخ كقيمة رقمية (Long)  اذا كانت الكميات ارقام صثحيحة و Double بدلاً من Long تحسباً لوجود كسور في الكميات (إذا كانت الكمية تحتوي على فواصل عشرية ) ، لأن تحويله إلى نص (String) مثل "MM/dd/yyyy" قد يتسبب في عدم تطابق البيانات إذا كان إعداد التاريخ في الجهاز مختلفاً.

جرب التعديل بالملف المرفق

SUMIFS_VBA.xlsm 20.8 kB · 1 download

 

 

عندي سؤال آخر

عند استخدام عمود التاريخ للتحقق هل يقرأه كتنسيف dd/mm/yyyy أم كرقم؟

لأن المتغير عرفناه كرقم تاريخ وليس كتنسيق تاريخ

  • Like 1
قام بنشر
4 ساعات مضت, Abu_Muhsen said:

عندي سؤال آخر

عند استخدام عمود التاريخ للتحقق هل يقرأه كتنسيف dd/mm/yyyy أم كرقم؟

 

حسب فهمي لسؤالك

في الكود المعدل الكود يقرأ عمود التاريخ كرقم

وللتوضيح اكثر التواريخ هي في الأصل أرقام (مثلاً تاريخ اليوم هو رقم مثل 46040)، والتنسيق الذي تراه dd/mm/yyyy هو مجرد "قناع" أو مظهر خارجي لتسهيل القراءة علينا كبشر.

في الكود توجد الدالة CDbl(.Range("J3").Value)، بحيث يأحد "القيمة الرقمية" الحقيقية المخزنة داخلها.

وباحتصار 

الكود الآن يرى التاريخ كقيمة رقمية مجردة،  بغض النظر عن طريقة تنسيق التاريخ في خلايا الجدول (سواء كانت yyyy/mm/dd أو dd-mm-yy).

ويمكنك تجربة تبديل بعض التواريح بتغيير التنسيق في الجدول كمثال جعل  15/04/2026  الى 04/15/2026 فالنتيجة واحدة 

تحياتي

 

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information