VBA et Solveur : Problème de ValueOf
Résolu
Méryll
-
Méryll -
Méryll -
Bonjour à tous !
Alors voilà, j´ai un petit problème dans une de mes macros qui utilise le solveur. J´utilise le solveur pour résoudre une équation dont je connais le résultat à atteindre. J´ai défini ce résultat comme une variable dans ma macro et nommé une cellule dans ma feuille de calcul aussi (celle ou figure ce résultat).
Le problème, c que quand je programme le solveur, il me résoud l´équation mais sans prendre la valeur par défaut que je lui donne (et considère que celle-ci est égale à zéro).
Du coup, le "x" que je recherche est faux bien entendu.
Voici mon code :
Sub Solveur()
Dim vc As Integer
vc = Worksheets(1).Range("Valeur_cible")
SolverReset
SolverOptions precision:=0.0001
SolverOK SetCell:=Range("Vérif_Xmax"), _
MaxMinVal:=3, ValueOf:="" & vc & "", _
ByChange:=Range("Xmax")
SolverSolve
SolverFinish
End Sub
C´est curieux, alors que le code accepte pour SetCell que je donne une cellule nommée, il n´accepte pas pour ByChange...
Bien sur g aussi essayé avec :
ValueOf:=Range("Valeur_cible")
Ne marche pas...
Idem avec :
ValueOf:=Range("B4") ' B4 sont les coordonnées où se trouve le résultat à atteindre
Une remarque inquiétante : Quand on fait le test sans macro et qu´on appelle le solveur à partir de la feuille de calcul, on voit bien d´ailleurs que le champs "valeur" ne permet pas de sélection une cellule mais qu´il faut rentrer un chiffre "à la main"... alors que l´option cellule cible offre de parcourir la feuille et de sélectionner une cellule...
Quelqu´un aurait-t-il une ídée ???
Merci !
Alors voilà, j´ai un petit problème dans une de mes macros qui utilise le solveur. J´utilise le solveur pour résoudre une équation dont je connais le résultat à atteindre. J´ai défini ce résultat comme une variable dans ma macro et nommé une cellule dans ma feuille de calcul aussi (celle ou figure ce résultat).
Le problème, c que quand je programme le solveur, il me résoud l´équation mais sans prendre la valeur par défaut que je lui donne (et considère que celle-ci est égale à zéro).
Du coup, le "x" que je recherche est faux bien entendu.
Voici mon code :
Sub Solveur()
Dim vc As Integer
vc = Worksheets(1).Range("Valeur_cible")
SolverReset
SolverOptions precision:=0.0001
SolverOK SetCell:=Range("Vérif_Xmax"), _
MaxMinVal:=3, ValueOf:="" & vc & "", _
ByChange:=Range("Xmax")
SolverSolve
SolverFinish
End Sub
C´est curieux, alors que le code accepte pour SetCell que je donne une cellule nommée, il n´accepte pas pour ByChange...
Bien sur g aussi essayé avec :
ValueOf:=Range("Valeur_cible")
Ne marche pas...
Idem avec :
ValueOf:=Range("B4") ' B4 sont les coordonnées où se trouve le résultat à atteindre
Une remarque inquiétante : Quand on fait le test sans macro et qu´on appelle le solveur à partir de la feuille de calcul, on voit bien d´ailleurs que le champs "valeur" ne permet pas de sélection une cellule mais qu´il faut rentrer un chiffre "à la main"... alors que l´option cellule cible offre de parcourir la feuille et de sélectionner une cellule...
Quelqu´un aurait-t-il une ídée ???
Merci !
A voir également:
- VBA et Solveur : Problème de ValueOf
- Excel compter cellule couleur sans vba - Guide
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
- Solveur de mots entre amis ✓ - Forum Excel