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 :
ce code fonctionne bien
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"
code pour ajouter la référence au solver :
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)
Code : Sélectionner tout - Visualiser dans une fenêtre à part ExcelApp.AddIns("Solver Add-in").Installed = True
par contre, quand je copie le code de la macro d'exécution du solver :
j'obtiens une erreur de compilation lors de l'exécution de la feuille qui contient ce code :
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
l'erreur se trouve dès la première ligne, ce qui me fait bien penser que le solver n'est pas reconnuProcédure Sub ou Function non définie
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 !
Partager