Erreur lors de l'utilisation du solveur sur VBA

FredB

XLDnaute Nouveau
Bonsoir,
mon problème et ma macro sont tous simples, mais je n'arrive pas à m'en dépêtrer.
J'ai tout simplement besoin, lorsque l'utilisateur modifie une cellule du classeur, d'exécuter automatiquement le solveur. Voici mon bout de code :

Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$6" Or Target.Address = "$G$9" Then
SolverReset
SolverAdd CellRef:="$C$22", Relation:=2, FormulaText:="$I$26"
SolverOk MaxMinVal:=3, ValueOf:="0", ByChange:="$C$28"
SolverSolve True
MsgBox "Feuille de calcul mise à jour"
End If
End Sub

Il n'y a qu'une contrainte dans le solveur et une cellule variable.

Excel me renvoit : Solveur, une erreur est survenue ou la mémoire disponible est saturée.

Quelqu'un aurait déjà rencontré ce soucis ? (Je précise que la case solveur est déjà cochée dans les références)
 

Dranreb

XLDnaute Barbatruc
Re : Erreur lors de l'utilisation du solveur sur VBA

Bonsoir.
Essayez en mettant Apllication.EnableEvents = False en tête et repassez le à True à la fin.
Après tout le solveur effectue des essais pour s'instruire en modifiant les cellules variable. Possible que cela auto-déclenche la Worksheet_Change récursivement, ce qui sature la mémoire quand il yen a des milliers d'engagées !
Êtes vous sûr que le solveur est nécessaire ? Quelles est la formule à inverser ?
Cordialement.
 

FredB

XLDnaute Nouveau
Re : Erreur lors de l'utilisation du solveur sur VBA

Bonsoir, j'ai essayé cela ne fonctionne pas. Nouveau message d'erreur :

Erreur d'exécution 424 : Objet Requis

La formule ne peut pas être inversée : on recherche dg en connaissant tout le reste, le solveur est donc absolument nécessaire.
formule.jpg
 

Pièces jointes

  • formule.jpg
    formule.jpg
    7.3 KB · Affichages: 44
  • formule.jpg
    formule.jpg
    7.3 KB · Affichages: 41