Abu_Muhsen قام بنشر يناير 21 قام بنشر يناير 21 السلام عليكم عندما أريد أن أجمع المبلغ بين فترتين من تاريخ إلى تاريخ لا يضبط معي؟ عن طريق المعادلات مضبوط 100% لكن المشكلة عندما أستخدم VBA لا يضبط؟ هل من مساعدة وجزاكم الله خير SUMIFS_VBA.xlsm
تمت الإجابة عبدالله بشير عبدالله قام بنشر يناير 21 تمت الإجابة قام بنشر يناير 21 وعليكم السلام ورحمة الله وبركاته المشكلة الأساسية في الكود تكمن في طريقة التعامل مع تنسيق التاريخ. في VBA، عندما نستخدم SumIfs مع التواريخ، يفضل تمرير التاريخ كقيمة رقمية (Long) اذا كانت الكميات ارقام صثحيحة و Double بدلاً من Long تحسباً لوجود كسور في الكميات (إذا كانت الكمية تحتوي على فواصل عشرية ) ، لأن تحويله إلى نص (String) مثل "MM/dd/yyyy" قد يتسبب في عدم تطابق البيانات إذا كان إعداد التاريخ في الجهاز مختلفاً. جرب التعديل بالملف المرفق SUMIFS_VBA.xlsm 2
Abu_Muhsen قام بنشر يناير 21 الكاتب قام بنشر يناير 21 47 دقائق مضت, عبدالله بشير عبدالله said: وعليكم السلام ورحمة الله وبركاته المشكلة الأساسية في الكود تكمن في طريقة التعامل مع تنسيق التاريخ. في VBA، عندما نستخدم SumIfs مع التواريخ، يفضل تمرير التاريخ كقيمة رقمية (Long) اذا كانت الكميات ارقام صثحيحة و Double بدلاً من Long تحسباً لوجود كسور في الكميات (إذا كانت الكمية تحتوي على فواصل عشرية ) ، لأن تحويله إلى نص (String) مثل "MM/dd/yyyy" قد يتسبب في عدم تطابق البيانات إذا كان إعداد التاريخ في الجهاز مختلفاً. جرب التعديل بالملف المرفق SUMIFS_VBA.xlsm 20.8 kB · 1 download بارك الله فيك وجزاك الله خير الجزاء إجابتك ليست حل للمشكلة بل توصيف لمكمن الخطأ حتى نتفاداه في أيامنا المقبلة جزيل الشكر لك أخ عبدالله 🌹 1
Abu_Muhsen قام بنشر يناير 21 الكاتب قام بنشر يناير 21 2 ساعات مضت, عبدالله بشير عبدالله said: وعليكم السلام ورحمة الله وبركاته المشكلة الأساسية في الكود تكمن في طريقة التعامل مع تنسيق التاريخ. في VBA، عندما نستخدم SumIfs مع التواريخ، يفضل تمرير التاريخ كقيمة رقمية (Long) اذا كانت الكميات ارقام صثحيحة و Double بدلاً من Long تحسباً لوجود كسور في الكميات (إذا كانت الكمية تحتوي على فواصل عشرية ) ، لأن تحويله إلى نص (String) مثل "MM/dd/yyyy" قد يتسبب في عدم تطابق البيانات إذا كان إعداد التاريخ في الجهاز مختلفاً. جرب التعديل بالملف المرفق SUMIFS_VBA.xlsm 20.8 kB · 1 download عندي سؤال آخر عند استخدام عمود التاريخ للتحقق هل يقرأه كتنسيف dd/mm/yyyy أم كرقم؟ لأن المتغير عرفناه كرقم تاريخ وليس كتنسيق تاريخ 1
عبدالله بشير عبدالله قام بنشر يناير 21 قام بنشر يناير 21 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 فالنتيجة واحدة تحياتي 1
Abu_Muhsen قام بنشر يناير 23 الكاتب قام بنشر يناير 23 في 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 فالنتيجة واحدة تحياتي أفهم ان التواريخ كرقم والتنسيق فقط قناع ليسهل علينا قراءته ... أجبت وأفدت، بارك الله فيك وزادك من فضله 🌹🌹🌹 1
الردود الموصى بها
انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد
يجب ان تكون عضوا لدينا لتتمكن من التعليق
انشئ حساب جديد
سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .
سجل حساب جديدتسجيل دخول
هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.
سجل دخولك الان