# Minimization VBA Code

#### matthew_ong12

##### New Member
Good morning Mr Excel, would like to ask how to code the minimization VBA code.

The objective is to minimize the
Fuel cost=Cost of Fuel 1 (Fuel 1 Qty) + Cost of fuel 2 (Fuel 2 Qty)+....
while satisfying the energy balance=Heating Value of Fuel 1 (Fuel 1 Qty)+ Heating Value of Fuel 2 (Fuel 2 Qty)+...

Here's the figures:

 Fuel Optimization Objective Fuel Cost (PhP) 22.17 Mil Energy Balance - Fuel Type ∆H (MJ/kg) (Tons) (PhP/Ton) (MJ) Coal 23.01 0.01 4800 0.17 Napier 0 - Wood Chips 12.53 7917.186906 2800 99,202.35 99,202.53 Bagasse 9.06 10,950.00 2600 99,202.53

<colgroup><col width="101" style="width:76pt"> <col width="82" style="width:62pt"> <col width="81" style="width:61pt"> <col width="74" style="width:56pt"> <col width="90" style="width:68pt"> </colgroup><tbody>
</tbody>

The 99,202MJ is the energy balance target that needs to be attain from using other fuel such as coal, napier and wood chips. This is equated to the product sum of Heating Values of other fuel (i.e. coal, napier & wood chips) and their quantity.

Hoping to hear from you soon

Regards,
Matthew

<colgroup><col width="101" style="width:76pt"><col width="82" style="width:62pt"><col width="81" style="width:61pt"><col width="74" style="width:56pt"><col width="90" style="width:68pt"></colgroup><tbody>
</tbody>

#### offthelip

##### Well-known Member
Looking at yor figures it seems obvious to me that the cheapest way of getting 99202Mj is using 10950 tons of Bagasse at 9.06 Mj/kg. So I think what this really means is that I haven't understood the question. which really means that your question is not very clear.

#### matthew_ong12

##### New Member
Hi Mr Excel, my apologies for my mistake. The fuel combination that I'm only considering are the top two only and excluding the bagasse. The objective is to match the energy content of the top two fuel type with the bagasse at the bottom. For the fuel pricing, again, its the sum of the top two only.

Hoping to hear from you soon

#### offthelip

##### Well-known Member
I still don't really understand what the problem is, what i undertand is that you want of find out the cost per Megajoule for each fuel. This is simply the calorific value per ton times the cost per ton.
i.e 1 ton of coal will cost you 4800 php and generate 23.01 Mgj so the cost per megjoule is 4800/23.01 = 4.79, for the wood chip is it 4.475 and the bagasse it 3.48

#### matthew_ong12

##### New Member
Hi Mr Excel, what i want to minimize is the total fuel cost=Cost of Coal*Tons of Coal + Cost of Wood Chips*Tons of Wood chips. The prices of coal and wood chips are given. What i need to solve is their quantity. For their quantity, i did an energy balance wherein Heating Value of Coal*Tons of Coal + Heating Value of Wood Chips*Tons of Wood Chips=Heating Value of Bagasse*Tons of Bagasse. (i.e. Heating Value refers to the MJ/kg column). I'm having a hard time coding the vba for it. Hoping to hear from you soon

Regards,

#### Fazza

##### MrExcel MVP
hi. I'm curious - is this a study question. Like homework? Why a VBA solution? What VBA do you already have?

#### matthew_ong12

##### New Member
Hi Ms Fazza, more of own formulated problem solving. What i did initially is i used the solver in excel. But i just thought of figuring how to formulate the vba code that does the same thing. Hoping you could help me out

#### Fazza

##### MrExcel MVP
... i just thought of figuring how to formulate the vba code that does the same thing.
So where have you got to??
Best to post it so people can see what you've done. Thanks

#### matthew_ong12

##### New Member
Hi Farra, what i initially did was to record the steps in macro when i utilized the solver. But as i try to adapt this one to the vba code, i'm encountering a problem. It says "Sub or Function not define". Here's the code below

The cell b380 refers to the total fuel cost that has to be minimized. The Qty of coal and wood chips are in the range c382 to c384. I also placed a nonlinear equation for the qty of coal and wood chips to be >=0 to avoid returning a negative value.

Hoping to hear from you soon

SolverOk SetCell:="\$B\$380", MaxMinVal:=3, ValueOf:=0, ByChange:="\$C\$382:\$C\$384" _
, Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="\$B\$380", MaxMinVal:=3, ValueOf:=0, ByChange:="\$C\$382:\$C\$384" _
, Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve