محمد الزريعي قام بنشر أغسطس 17, 2015 قام بنشر أغسطس 17, 2015 في هذا المرفق هي عبارة عن معادلات لم تكن موجودة مع دوال اكسل . ولكن هل بالإمكان ان حولها الي كود بسيط في اكسل .. اريد كود نفس الكود التالي مع العلم أن الكود التالي هو لـ sumifs XX = Application.WorksheetFunction.SumIfs(sh.Range("f11:f" & LR2), sh.Range("c11:c" & LR2), YY) وشرحة كالتالي : xx = متغير يتم تخزين القيمة الناتجة فية f11: f = هو العمود الذي سوف نجمعه وهو الارقام يبتدى من f11 وحتى نهاية f وهو ( sum_range ) >>> lr2 : هو متغير يقوم بأخذ قيمة اخر صف موجود فية البيانات من الاسفل وله الكود التالي ( LR2 = Cells(Rows.Count, 2).End(xlUp).Row .. c11: c هو العمود الذي راح نبحث فية عن تطابق الكلمة وهو ( criteria _range ) >> YY = وهو متغير يرمز للكلمة أو الرقم الذي نبحث عنه .. في العمود سي .. واسم هذا المتغير ( criteria ) >> دالة MAXIF -MINIF.rar
أفضل إجابة خالد الرشيدى قام بنشر أغسطس 18, 2015 أفضل إجابة قام بنشر أغسطس 18, 2015 (معدل) الســــلام عليكم يمكن استدعاء تقريبا كافة معادلات الاكسيل فى ال VBA باستخدام الامر Application.Worksheetfunction وهو ما فعلتة حضرتك واستدعيت الدالة SUMIF ولكن MAXIF و MINIF ليست ضمن معادلات الاكسيل وانما تم مزج IF مع MAX فى معادلة صفيف CTRL+SHIFT + ENTER لايجاد اكبر قيمة بشرط ... وكذلك الحال فى MINIF لهذا لاحظ ما يلى يلاحظ عند استخدام Evaluate تم قراءة المحتوى ما بين ال " " اى ال 1+1 كمعادلة وتم ارجاع الناتج على خلاف FORMULA التى نسخت المعادلة الى الخلية وسنستخدم Evaluate فى تنفيذ MAXIF و MINIF Range("D7").Value = Evaluate("=MAX(IF(D10:D13=B11,$E10:$E13))") Range("D15").Value = Evaluate("=Min(if(D10:D13=B11,E10:E13))") لاحظ كيف تم كتابة المعادلة بدون استخدام وسائط الاشارةالى النطاقات فى ال VBA ك RANGE او ... فقط تم كتابة المعادلة وكانها تكتب على ورقة العمل ما بين (" ") ولكن كيف سيعرف الاكسيل صفحة العمل التى تحوى تلك النطاقات فقط لاحظ ما يلى Range("D7").Value = Worksheets(" ورقة1 ").Evaluate("=MAX(IF(D10:D13=B11,$E10:$E13))") Range("D15").Value = Worksheets(" ورقة 1 ").Evaluate("=Min(if(D10:D13=B11,E10:E13))") اليك المرفق دالة MAXIF -MINIF.rar تم تعديل أغسطس 18, 2015 بواسطه خالد الرشيدى 6 1
ياسر خليل أبو البراء قام بنشر أغسطس 18, 2015 قام بنشر أغسطس 18, 2015 بسم الله ما شاء الله أخي الحبيب خالد تقديم رائع لحل أروع ..بارك الله فيك تقبل وافر تقديري واحترامي 1
خالد الرشيدى قام بنشر أغسطس 18, 2015 قام بنشر أغسطس 18, 2015 استاذى الحبيب ياسر خليل خالص شكرى لمرور حضرتك العطر جزاك الله خيراً
محمد الزريعي قام بنشر أغسطس 18, 2015 الكاتب قام بنشر أغسطس 18, 2015 الله يجزيك الف خير أخي خالد نعم هذا الكود المطلوب ..
إبراهيم ابوليله قام بنشر أغسطس 18, 2015 قام بنشر أغسطس 18, 2015 اخى خالد حل رائع ومشكور على مجهودك الجبار تقبل تحياتى 1
محمد الزريعي قام بنشر أغسطس 18, 2015 الكاتب قام بنشر أغسطس 18, 2015 لكن حصلت مشكلة في الكود عندما جيت أنقله ,, وهي المتغيرات .. حيث أن العمود d .. ليس له مدى محدد .. حيث يبداء من قيمة متغير وينتهي الي قيمة متغير .. ومثلة العمود e كذالك القيمة التي هي criteria = أيضاً متغير كما هو بالكود التالي . ooo = Worksheets("seen").Evaluate("=MAX(IF(("d" & LR3, "d" & LR4)=xx3,("e" & LR3, "e" & LR4))") اقصد البداية من المتغير LR3 وينتهي في LR4 ووضعت هذه المتغيرات بدل أرقام الصفوف . حسب القيمة التي هي في المتغير xx3 والتي انت مسميها b11 >>> ووضعت هذا المتغير بدل المتغير الثابت .
ياسر خليل أبو البراء قام بنشر أغسطس 18, 2015 قام بنشر أغسطس 18, 2015 أفضل إرفاق الملف الأصلي للإطلاع عليه .. حيث أن تكوين السطر بهذا الشكل غير منطقي .. حاول تساعد الأعضاء عشان يقدروا يساعدوك تقبل تحياتي عموماً جرب الكود التالي إذا ظبطت معاك كان بها فهي نعمة من الله إذا لم تظبط معاك فلن أساهم في الموضوع إلا بعد إرفاق الملف الأصلي (يسر علينا كي تجد المساعدة) Sub Max() Dim LR3 As Long, LR4 As Long, XX3 LR3 = 10: LR4 = 13 XX3 = Range("B11").Value Range("D7").Value = Worksheets("Seen").Evaluate("=MAX(IF(D" & LR3 & ":D" & LR4 & "= " & XX3 & ",E" & LR3 & ":E" & LR4 & "))") End Sub تقبل تحياتي 2
محمد الزريعي قام بنشر أغسطس 18, 2015 الكاتب قام بنشر أغسطس 18, 2015 تحياتي لك معلمي الاخ ياسر في مثل يقول (( العين ما تعلى على الحاجب )) خيرك سابق كثير علينا .. وين مارحنا وين ما جينا .. عالعموم .. رفعت لك الملف كامل .. بعد أن وضعت الكود فية .. هو مشى معايا بدون ما أعرف المتغيرات . ولكن هل هذا الحل الذي قمت فية سليم ؟ هل يوجد مشاكل منه في المستقبل .. أخاف اتورط مع الحسابات بعدين .. .. أو اكون ظالم بعض الموظفين .. حافز المبيعات.rar اقصد حلي انا هل هو سليم
ياسر خليل أبو البراء قام بنشر أغسطس 18, 2015 قام بنشر أغسطس 18, 2015 الحمد لله أن تم المطلوب على خير بالنسبة لملفك أنت أدرى به .. يجب تفحص الملف بشكل جيد وتفحص النتائج للتأكد من صحة سلامة الأكواد ونصيحة حاول دائماً ان يكون للملف الهام لديك نسخ احتياطي وليست نسخة واحدة يعني مع كل تطور بالملف ينصح بعمل نسخة احتياطي حتى إذا حدثت مشكلة ترجع لآخر نسخة سليمة ولا يضيع كل العمل هباء (مفيش حاجة مضمونة) 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.