Bonjour à tous,
Je voudrais vous solliciter pour un problème que je rencontre lorsque j’essaie d'utiliser le solveur d'Excel sur VB.Net.
Voici mon code que j'ai trouvé sur internet et qui en principe devrait marcher mais il ne fonctionne pas chez moi.
Le fichier Excel s'ouvre avec la même valeur initiale de A1 et B1 :

Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Module Module1
        Sub Main()
        Dim oExcel As Microsoft.Office.Interop.Excel.Application
        Dim oBook As Microsoft.Office.Interop.Excel.Workbook
        Dim oSheet As Microsoft.Office.Interop.Excel.Worksheet
        ' Dim oRng As Microsoft.Office.Interop.Excel.Range
        Dim oModule As VBIDE.VBComponent
        Dim MacroCode As String
 
        oExcel = New Excel.Application()
        oExcel.Visible = True
 
        oBook = oExcel.Workbooks.Add
        oSheet = oBook.ActiveSheet
 
        oSheet.Range("A1").NumberFormat = "#,##0.00"
        oSheet.Range("B1").NumberFormat = "#,##0.00"
        oSheet.Range("A1").Value = 2
        oSheet.Range("B1").Formula = "=A1*5+4"
 
        oModule = oBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule)
        MacroCode = "sub useSolver()" & vbCr & _
        "SolverOk SetCell:=""$B$1"", MaxMinVal:=3, ValueOf:=0.00, ByChange:=""$A$1"", Engine _" & vbCr & _
        ":=1, EngineDesc:=""GRG Nonlinear""" & vbCr & _
        "SolverSolve UserFinish:=True" & vbCr & _
        "End Sub"
 
        oBook.VBProject.References.AddFromFile("C:\Program Files\Microsoft Office\Office14\Library\SOLVER\SOLVER.xlam")
        oExcel.Run(MacroCode)
 
    End Sub
Le code ouvre donc le fichier Excel et met juste les valeurs initiales de chaque case et n'utilise donc pas le solveur.
J'ai juste mis une formule simple pour vérifier si le solveur marchait.

Merci de m'aider