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

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

قام بنشر

السلام عليكم

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

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

 

 

SUMIFS_VBA_img.png

SUMIFS_VBA.xlsm

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

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

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

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

SUMIFS_VBA.xlsm

 

 

  • Like 1
قام بنشر
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 فالنتيجة واحدة 

تحياتي

 

  • Like 1
قام بنشر
في 21‏/1‏/2026 at 23:11, عبدالله بشير عبدالله said:

 

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

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

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

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

وباحتصار 

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

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

تحياتي

 

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

أجبت وأفدت، بارك الله فيك وزادك من فضله

🌹🌹🌹

  • Like 1

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

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

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

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

سجل حساب جديد

تسجيل دخول

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

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

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

Important Information