Solver does not appear to be well supported in LibreCalc Basic and the calls are totally different from Excel VB.

Attached code I got from another forum which works to maximise a value. Input cells are A1; B1 and C1 and D1 is = A1+B1-C1

sub solvermacro

rem ----------------------------------------------------------------------

rem define variables

dim document as object

dim dispatcher as object

rem ----------------------------------------------------------------------

rem get access to the document

document = ThisComponent.CurrentController.Frame

dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”)

rem ----------------------------------------------------------------------

rem dispatcher.executeDispatch(document, “.uno:SolverDialog”, “”, 0, Array())

Dim Variables(2) as Object

Dim Constraint_0 as New com.sun.star.sheet.SolverConstraint

Dim Constraint_1 as New com.sun.star.sheet.SolverConstraint

Dim Constraint_2 as New com.sun.star.sheet.SolverConstraint

Dim Constraints(2) as Object

smgr = GetProcessServiceManager()

solv = smgr.createInstance(“com.sun.star.sheet.Solver”)

ConstrOperator1 = com.sun.star.sheet.SolverConstraintOperator.LESS_EQUAL

ConstrOperator2 = com.sun.star.sheet.SolverConstraintOperator.GREATER_EQUAL

oDoc = ThisComponent

solv.Document = oDoc

Sheet = oDoc.Sheets(0)

ObjectiveCell = Sheet.getCellByPosition(3,0) 'This cell has the formula =A1 + B1 - C1

solv.Objective = ObjectiveCell.CellAddress

VariCell0 = Sheet.getCellByPosition(0,0)

Variables(0) = VariCell0.CellAddress

VariCell1 = Sheet.getCellByPosition(1,0)

Variables(1) = VariCell1.CellAddress

VariCell2 = Sheet.getCellByPosition(2,0)

Variables(2) = VariCell2.CellAddress

solv.Variables = Variables()

Constraint_0.Left = Sheet.getCellByPosition(0,0).CellAddress

Constraint_0.Operator = ConstrOperator1

Constraint_0.Right = 6

Constraints(0) = Constraint_0

Constraint_1.Left = Sheet.getCellByPosition(1,0).CellAddress

Constraint_1.Operator = ConstrOperator1

Constraint_1.Right = 8

Constraints(1) = Constraint_1

Constraint_2.Left = Sheet.getCellByPosition(2,0).CellAddress

Constraint_2.Operator = ConstrOperator2

Constraint_2.Right = 4

Constraints(2) = Constraint_2

solv.Constraints = Constraints()

solv.Maximize = True

solv.Solve()

Print solv.ResultValue

end sub

I cannot for the life of me find out how to solve for anything except maximise and minimise, i.e. solve for a value. (This would be the equivalent of the ValueOf=“0” in the SolverOK call)