À propos du Solveur + Solveur et macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Bonjour à tous,

Pour trouver une valeur optimale il est judicieux d'utiliser le Solveur qui est un instrument d'analyse très puissant et qui n'est pas installé dans Excel par défaut. Pour cela il faut installer la macro complémentaire qui lui correspond (voir l'aide d'Excel). Bref c'est un complément peu connu, mais sans doute l'un de ceux qui montre le mieux l'incroyable capacité de calcul d'Excel. Fatalement, au plus la bécane sera puissante, au plus le résultat apparaîtra rapidement (il faut souvent attendre plusieurs secondes, vu les milliers de calculs réalisés jusqu'à ce que le solveur trouve la valeur la plus appropriée). Peu utilisé (pratiquement personne connaît son existence, et pourtant il es là, il suffit de l'installer...!), le Solveur mérite d'être découvert !!!!

Voici donc mon problème avec le Solveur :

j'ai une cellule dans laquelle on rentre une valeur entière ou décimale. Cette valeur fait partie des variables d'une formule. Dans une autre cellule apparaît forcément le résultat de la formule.
Je demande au solveur de trouver la valeur de la 1ère cellule pour que le résultat soit égal à une valeur que je lui indique. Le solveur se met à calculer toutes les possibilités jusqu'à atteindre la valeur stipulée.

Je fais l'essai : ça marche !
Je décide d'écrire une macro pour automatiser la tâche.
Ne connaissant absolument pas la syntaxe pour le solveur, j'enregistre une macro pendant que j'effectue toutes les démarches précédentes, quitte ensuite à peaufiner la macro.
La macro s'enregistre bien.
Voici son contenu :

Sub Macro1()

Range("BV3").Select
ActiveCell.FormulaR1C1 = "1"
Range("BV4").Select
SolverAceptar definirCelda:="$BW$3", valorMáxMín:=1, valorDe:="350", _
celdasCambiantes:="$BV$3"
SolverResolver

End Sub

J'enclenche la macro pour voir si elle marche bien, et apparaît alors un message d'erreur :
"Sub ou fonction n'a pas été défini".
J'examine de plus près la syntaxe de la macro et curieusement je m'aperçois qu'il y a des choses écrites en espagnol (j'utilise en effet Excel en espagnol), alors que VBA est TOUJOURS en anglais !

Pourquoi donc ce problème quand on enregistre une macro avec le Solveur ?

Si l'un d'entre vous pouvait me l'expliquer, un grand merci !
 
Re : À propos du Solveur + Solveur et macro

Je viens de fouiner dans la BD du forum.
Staple1600, suite à une question de Myriam à propos d'une impossibilité à lancer le Solveur par macro, avait répondu :

Résultat d'une macro enregistée :

Sub Macro3()
SolverOk SetCell:="$C$10", MaxMinVal:=1, ValueOf:="1000", ByChange:="$B$11"
SolverAdd CellRef:="$C$10", Relation:=3, FormulaText:="10"
SolverOk SetCell:="$C$10", MaxMinVal:=1, ValueOf:="1000", ByChange:="$B$10"
SolverDelete CellRef:="$C$10", Relation:=3, FormulaText:="10"
SolverOk SetCell:="$C$10", MaxMinVal:=1, ValueOf:="1000", ByChange:="$B$10"
SolverAdd CellRef:="$B$11", Relation:=3, FormulaText:="75"
SolverOk SetCell:="$B$11", MaxMinVal:=1, ValueOf:="", ByChange:="$B$10"
End Sub

(ou j'ai fait n'importe quoi avec le solveur)


Conclusion: on peut lancer le solveur non ?

Je fais donc les modifications suivantes :

Sub Macro1()

[$BV$3] = 1

SolverOk SetCell:="$BW$3", MaxMinVal:=1, ValueOf:="350", ByChange:="$BV$3"

End Sub

Là, tout est écrit en anglais !
Je déclenche la macro :
Toujours le même message d'erreur : "Sub ou fonction n'a pas été défini"

avec surlignement de SolverOk dans la macro.

Bizarre, bizarre...
 
Re : À propos du Solveur + Solveur et macro

Bonjour Magic doctor,

Si tu as toujours le problème, vérifie ces deux choses dans l'ordre :

  • Que tu as bien le solveur d'activé dans les macros complémentaires.
    (Si tu peux cliquer sur Outils/Solveur depuis Excel)
  • Que tu as bien mis le solveur comme référence dans ton projet VBE.
    (Depuis VBE, tu fais "Outils/Références" Pour cocher "SOLVER", "Solver.xla" ou "solver.xls" (ca dépend de ce que tu as) puis "ok".
    Si tu n'as pas de suite une des trois possibilités dans la liste, "parcourir" et en général c'est caché dans "program files/Microsoft Office/Office ##/Bibliothèques/" et prend bien garde dans l'ascenseur du bas de bien chercher des fichiers xla ou xls et pas dll.)

Si ces deux choses sont faites, tu as l'onglet "Références/Référence à Solver.Xla" dans ton projet VBA. Et à la compilation, tu n'as pas d'erreur de Sub ou fonction non définie.

En espérant avoir été clair et pas trop tard.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
243
Réponses
7
Affichages
657
Retour