Bonjour

je fais une application sous vb6 qui me génère des systèmes d'équations. Je souhaite à présent les résoudre grâce au solver d'Excel par la méthode des moindres carrés.
j'ai donc placé la référence à Excel, et généré mon document comme il faut (je vérifie à chaque fois en enregistrant le document), il ne me reste plus qu'à exécuter le solver, mais je n'y arrive pas

j'ai essayé en copiant le code créé par les enregistreurs de macros pour ajouter la référence au solver, et ca marche. En revanche, quand je copie le code de la macro d'exécution du solver, j'obtiens un message d'erreur

code de déclaration des variables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim ExcelApp As Excel.Application
Dim Classeur As Excel.Workbook
Dim Feuille As Excel.Worksheet
Dim Plage As Excel.Range
 
'nouvelle instance d'application Excel
Set ExcelApp = New Excel.Application
'ne pas afficher d'alertes
ExcelApp.DisplayAlerts = False
 
'nouveau classeur
Set Classeur = ExcelApp.Workbooks.Add(xlWBATWorksheet)
'sélectionner la feuille
Set Feuille = ExcelApp.Worksheets(1)
Feuille.Name = "CMP"
ce code fonctionne bien

code pour ajouter la référence au solver :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ExcelApp.AddIns("Solver Add-in").Installed = True
ce code fonctionne bien aussi (à chaque fois j'enregistre le fichier grâce à la méthode "SaveAs" et je vérifie), j'ai bien "Solver Add-In" de cocher dans les options de macros complémentaires (menu outils -> macros complémentaires)

par contre, quand je copie le code de la macro d'exécution du solver :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SolverOk SetCell:="$G$3", MaxMinVal:=2, ValueOf:="0", ByChange:="$A$1:$B$1"
SolverAdd CellRef:="$A$1", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$B$1", Relation:=3, FormulaText:="0"
SolverOk SetCell:="$G$3", MaxMinVal:=2, ValueOf:="0", ByChange:="$A$1:$B$1"
SolverOptions MaxTime:=100, Iterations:=100, Precision:=0.000001, AssumeLinear:=False, StepThru:=False, Estimates:=1, Derivatives:=1, SearchOption:=1, IntTolerance:=5, Scaling:=False, Convergence:=0.0001, AssumeNonNeg:=False
SolverOk SetCell:="$G$3", MaxMinVal:=2, ValueOf:="0", ByChange:="$A$1:$B$1"
SolverSolve
j'obtiens une erreur de compilation lors de l'exécution de la feuille qui contient ce code :
Procédure Sub ou Function non définie
l'erreur se trouve dès la première ligne, ce qui me fait bien penser que le solver n'est pas reconnu

Comment faire donc pour pouvoir "piloter" le solver d'Excel depuis VB6 ?

j'ai essayé de donner un maximum de détails, mais si quelque chose n'est pas clair, n'hésitez pas à me le faire savoir
merci pour votre aide !