Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.
 

Pièces jointes

  • formule.jpg
    7.3 KB · Affichages: 44
  • formule.jpg
    7.3 KB · Affichages: 41
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…