VBA Solver | مثال خطوة بخطوة لاستخدام Solver في Excel VBA

برنامج Excel VBA Solver

كيف تحل المشاكل المعقدة؟ إذا لم تكن متأكدًا من كيفية التعامل مع هذه المشكلات ، فلا داعي للقلق لدينا في برنامج التفوق. في مقالتنا السابقة "Excel Solver" تعلمنا كيفية حل المعادلات في Excel. إذا لم تكن على علم بأن "SOLVER" متاح مع VBA أيضًا. في هذه المقالة ، سنتعرف على كيفية استخدام "Solver" في VBA.

تمكين Solver في ورقة العمل

الحل هو أداة مخفية متاحة ضمن علامة تبويب البيانات في Excel (إذا تم تمكينها بالفعل).

لاستخدام SOLVER في Excel ، نحتاج أولاً إلى تمكين هذا الخيار. اتبع الخطوات أدناه.

الخطوة 1: اذهب إلى علامة التبويب FILE. ضمن علامة التبويب "ملف" ، اختر "خيارات".

الخطوة 2: في نافذة خيارات Excel ، اختر "الوظائف الإضافية".

الخطوة 3: في الجزء السفلي ، اختر "وظائف Excel الإضافية" وانقر على "انتقال".

الخطوة 4: الآن حدد المربع "Solver Add-in" وانقر على Ok.

الآن يجب أن تشاهد "Solver" ضمن علامة تبويب البيانات.

تمكين Solver في VBA

في VBA أيضًا ، تعد Solver أداة خارجية ، نحتاج إلى تمكينها من استخدامها. اتبع الخطوات أدناه لتمكينه.

الخطوة 1: انتقل إلى أدوات >>> المرجع في نافذة محرر Visual Basic.

الخطوة 2: من قائمة المراجع ، اختر "Solver" وانقر على "موافق" لاستخدامه.

الآن يمكننا استخدام Solver في VBA أيضًا.

وظائف Solver في VBA

لكتابة رمز VBA ، نحتاج إلى استخدام ثلاث "وظائف Solver" في VBA وهذه الوظائف هي "SolverOk و SolverAdd و SolverSolve".

حسنًا

SolverOk (SetCell ، MaxMinVal ، ValueOf ، ByChange ، المحرك ، EngineDesc)

SetCell: سيكون هذا مرجع الخلية الذي يجب تغييره ، أي خلية الربح.

MaxMinVal: هذه معلمة اختيارية ، فيما يلي الأرقام والمحددات.

  • 1 = تكبير
  • 2 = تصغير
  • 3 = تطابق قيمة معينة

ValueOf: يجب توفير هذه المعلمة إذا كانت الوسيطة MaxMinVal هي 3.

ByChange: عن طريق تغيير الخلايا التي تحتاج إلى حل هذه المعادلة.

SolverAdd

الآن دعنا نرى معلمات SolverAdd

CellRef: لتعيين المعايير لحل المشكلة ، ما هي الخلية التي تحتاج إلى تغيير.

العلاقة: في هذا ، إذا تم استيفاء القيم المنطقية ، فيمكننا استخدام الأرقام أدناه.

  • 1 أصغر من (<=)
  • 2 يساوي (=)
  • 3 أكبر من (> =)
  • 4 يجب أن تحتوي على قيم نهائية وهي أعداد صحيحة.
  • 5 يجب أن تحتوي على قيم بين 0 أو 1.
  • 6 يجب أن تحتوي على قيم نهائية كلها مختلفة وأعداد صحيحة.

مثال على Solver في Excel VBA

يمكنك تنزيل قالب VBA Solver Excel هذا هنا - قالب VBA Solver Excel

للحصول على مثال ، انظر إلى السيناريو أدناه.

باستخدام هذا الجدول ، نحتاج إلى تحديد مبلغ "الربح" الذي يجب ألا يقل عن 10000. للوصول إلى هذا الرقم ، لدينا شروط معينة.

  • يجب أن تكون الوحدات المراد بيعها قيمة عددية.
  • يجب أن يكون السعر / الوحدة بين 7 و 15.

بناءً على هذه الشروط ، نحتاج إلى تحديد عدد الوحدات المراد بيعها وبأي سعر للحصول على قيمة ربح 10000.

حسنًا ، لنحل هذه المعادلة الآن.

الخطوة 1: ابدأ الإجراء الفرعي لـ VBA.

رمز:

 Sub Solver_Example () End Sub 

الخطوة 2: نحتاج أولاً إلى تعيين مرجع خلية الهدف باستخدام دالة SolverOk .

الخطوة 3: الوسيطة الأولى لهذه الوظيفة هي "SetCell" ، في هذا المثال نحتاج إلى تغيير قيمة خلية الربح ، أي خلية B8.

رمز:

 Sub Solver_Example () SolverOk SetCell: = النطاق ("B8") End Sub 

الخطوة 4: الآن نحتاج إلى تعيين قيمة الخلية هذه على 10000 ، لذلك بالنسبة لـ MaxMinVal استخدم 3 كقيمة وسيطة.

رمز:

 Sub Solver_Example () SolverOk SetCell: = النطاق ("B8") ، MaxMinVal: = 3 End Sub 

الخطوة 5: يجب أن تكون قيمة الوسيطة التالية ValueOf 10000.

رمز:

 Sub Solver_Example () SolverOk SetCell: = النطاق ("B8") ، MaxMinVal: = 3 ، ValueOf: = 10000 End Sub 

الحجة التالية هي ByChange أي عن طريق تغيير الخلايا التي تحتاج هذه المعادلة للحل. في هذه الحالة ، من خلال تغيير الوحدات إلى البيع (B1) ، يجب تغيير خلية السعر لكل وحدة (B2).

رمز:

 Sub Solver_Example () SolverOk SetCell: = النطاق ("B8")، MaxMinVal: = 3، ValueOf: = 10000، ByChange: = Range ("B1: B2") End Sub 

ملاحظة: الوسائط المتبقية غير مطلوبة هنا.

الخطوة 6: بمجرد تعيين الخلية الهدف ، نحتاج الآن إلى إنشاء معايير أخرى. لهذه الوظيفة "SolverAdd" المفتوحة.

الخطوة 7: مرجع الخلية الأول الذي نحتاج إلى تغييره هو Price Per Unit cell أي خلية B2.

رمز:

 Sub Solver_Example () SolverOk SetCell: = النطاق ("B8") ، MaxMinVal: = 3 ، ValueOf: = 10000 ، ByChange: = النطاق ("B1: B2") SolverAdd CellRef: = النطاق ("B2") End Sub 

الخطوة 8: يجب أن تكون هذه الخلية> = 7 ، لذلك ستكون حجة العلاقة 3.

رمز:

 Sub Solver_Example () SolverOk SetCell: = النطاق ("B8") ، MaxMinVal: = 3 ، ValueOf: = 10000 ، ByChange: = النطاق ("B1: B2") SolverAdd CellRef: = النطاق ("B2") ، العلاقة: = 3 نهاية الفرعية 

الخطوة 9: يجب أن تكون قيمة الخلية هذه> = 7 أي نص الصيغة = 7 .

رمز:

 Sub Solver_Example () SolverOk SetCell: = النطاق ("B8") ، MaxMinVal: = 3 ، ValueOf: = 10000 ، ByChange: = النطاق ("B1: B2") SolverAdd CellRef: = النطاق ("B2") ، العلاقة: = 3 ، FormulaText: = 7 End Sub 

الخطوة 10: وبالمثل ، يجب أن تكون الخلية نفسها أقل من 15 ، لذا فإن هذه العلاقة هي <= ie 1 كقيمة الوسيطة.

رمز:

 Sub Solver_Example () SolverOk SetCell: = النطاق ("B8") ، MaxMinVal: = 3 ، ValueOf: = 10000 ، ByChange: = النطاق ("B1: B2") SolverAdd CellRef: = النطاق ("B2") ، العلاقة: = 3 ، FormulaText: = 7 SolverAdd CellRef: = النطاق ("B2") ، العلاقة: = 1 ، FormulaText: = 15 End Sub 

الخطوة 11: الخلية الأولى ، أي الوحدات المراد بيعها ، يجب أن تكون قيمة عدد صحيح لهذا أيضًا ، قم بإعداد المعايير على النحو التالي.

رمز:

 Sub Solver_Example () SolverOk SetCell: = النطاق ("B8") ، MaxMinVal: = 3 ، ValueOf: = 10000 ، ByChange: = النطاق ("B1: B2") SolverAdd CellRef: = النطاق ("B2") ، العلاقة: = 3 ، FormulaText: = 7 SolverAdd CellRef: = النطاق ("B2") ، العلاقة: = 1 ، FormulaText: = 15 SolverAdd CellRef: = Range ("B1") ، العلاقة: = 4 ، FormulaText: = "عدد صحيح" End Sub 

الخطوة 12: خطوة أخيرة نحتاجها لإضافة وظيفة SolverSolve.

رمز:

 Sub Solver_Example () SolverOk SetCell: = النطاق ("B8") ، MaxMinVal: = 3 ، ValueOf: = 10000 ، ByChange: = النطاق ("B1: B2") SolverAdd CellRef: = النطاق ("B2") ، العلاقة: = 3 ، FormulaText: = 7 SolverAdd CellRef: = النطاق ("B2") ، العلاقة: = 1 ، FormulaText: = 15 SolverAdd CellRef: = Range ("B1") ، العلاقة: = 4 ، FormulaText: = "عدد صحيح" SolverSolve End الفرعية 

حسنًا ، قم بتشغيل الكود بالضغط على المفتاح F5 للحصول على النتيجة.

عند تشغيل الكود سترى النافذة التالية.

اضغط على موافق وستحصل على النتيجة في ورقة إكسل.

لذلك من أجل تحقيق ربح 10000 ، نحتاج إلى بيع 5000 وحدة بسعر 7 لكل سعر حيث يكون سعر التكلفة 5.

أشياء للذكرى

  • للعمل مع Solver في Excel & VBA ، أولاً ، قم بتمكينه لورقة العمل ، ثم قم بتمكينه كمرجع لـ VBA.
  • بمجرد تمكينه في كل من أوراق العمل و VBA ، يمكننا فقط الوصول إلى جميع وظائف Solver.

$config[zx-auto] not found$config[zx-overlay] not found