Bonjour,

Je débute en code VBA et j'ai une question dans l'utilisation du solveur.

J'ai une somme de carré à minimiser : la somme dépend de deux paramètres (\alpha, \beta). Et bien sûr je dois le faire sur 10 000 sommes.

Le solveur me produit une solution approchée convenable du couple quand je l'utilise manuellement sur un ou deux cas.

Mes sommes sont en colonnes 67 (BO), mes variables en colonnes 37 et 38 (AK, AL). Et voici le code que j'ai tenté de mettre en place et dont le message d'erreur se situe au niveau du solveur, puisqu'il me dit que les contraintes ou les conditions ne sont pas valides :

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
16
Sub Macro3()
 
   Dim CellulesVariables As Range
   Dim i As Integer
   For i = 20 To 23
   SolverReset
   With Feuil1
   Set CellulesVariables = Union(Range("AK" & i), Range("AL" & i))
   End With
   Cells(i, 67).Select
   SolverOk SetCell:=ActiveCell, MaxMinVal:=3, ValueOf:="0", ByChange:="Union(Range("AK" & i), Range("AL" & i))" _
       , Engine:=1, EngineDesc:="GRG Nonlinear"
   SolverSolve 
   Next i
 
End Sub
Voilà, en espérant que vous puissiez m'aider, je pense que le problème se situe au niveau de la définition du "ByChange", mais je n'arrive pas à le modifier.

Bonne journée,

Jonny