Macro et solver

Fermé
artlm Messages postés 9 Date d'inscription vendredi 13 mars 2015 Statut Membre Dernière intervention 14 mars 2015 - 13 mars 2015 à 18:02
artlm Messages postés 9 Date d'inscription vendredi 13 mars 2015 Statut Membre Dernière intervention 14 mars 2015 - 14 mars 2015 à 20:06
Bonjour à tous,

J'ai une question à vous poser, je cherche à faire une macro basique qui fasse une boucle sur le solveur (pour apprendre à m'en servir)

j'ai tenté ça :

Sub solveur()

Dim K As Integer

For K = 1 To 5
SolverReset
SolverOk SetCell:="D" & K, MaxMinVal:=3, ValueOf:="0", ByChange:="E" & K
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
Next

End Sub


Mais pour une raison qui m'échappe le solveur seule la dernière valeur est changé (ici D5 et D1...D4 restent inchangée)

Que dois je modifier?
A voir également:

2 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
14 mars 2015 à 18:17
Bonjour
N'ayant pas le fichier pour tester
A tout hasard, remplacez la ligne SolverOK par
SolverOk SetCell:=Range("D" & K), MaxMinVal:=3, ValueOf:="0", ByChange:=Range("E" & K)
cdlt
0
artlm Messages postés 9 Date d'inscription vendredi 13 mars 2015 Statut Membre Dernière intervention 14 mars 2015
14 mars 2015 à 18:25
re,

Je ne vois pas la différence entre les deux j'ai donc tenté un copié collé mais ça n'a malheureusement pas résolu le problème.

Le pire étant que si j'exécute la macro pas à pas alors tout marche, on dirai que le solveur n'a pas le temps de résoudre que la boucle est déjà passée à la valeur suivante.

Qu'en pensez vous?
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
14 mars 2015 à 18:38
c'est normal, vous avez créez une boucle ( k =1 à 5), le programme s'exécute jusqu'à la cinquième et sort. Si vous voulez voir chaque étape supprimez la boucle et passez par un autre artifice (par exemple: affecter la valeur de K à une cellule que vous modifierez à la demande)
0
artlm Messages postés 9 Date d'inscription vendredi 13 mars 2015 Statut Membre Dernière intervention 14 mars 2015
14 mars 2015 à 18:43
à chaque exécution le solveur devrait résoudre et modifier la cellule DK avec K variant. C'est d'ailleurs pour cela qu'avec une exécution pas à pas il n'y a pas de problème.
Je dois résoudre beaucoup d'équations et ne peut donc pas le faire à la main en changeant la valeur de k dans une cellule
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338 > artlm Messages postés 9 Date d'inscription vendredi 13 mars 2015 Statut Membre Dernière intervention 14 mars 2015
14 mars 2015 à 18:47
Donc, après chaque boucle,et pour chaque valeur de K, il faut que vous recopiez les résultats dans un autre tableau
0
artlm Messages postés 9 Date d'inscription vendredi 13 mars 2015 Statut Membre Dernière intervention 14 mars 2015
14 mars 2015 à 19:05
j'ai essayé mais de la même manière il me prend la "vieille valeur" et pas le résultat du calcul
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338 > artlm Messages postés 9 Date d'inscription vendredi 13 mars 2015 Statut Membre Dernière intervention 14 mars 2015
14 mars 2015 à 19:12
si j'exécute la macro pas à pas alors tout marche, en faisant du pas à pas avec F8, à un moment donné, le résultat change, c'est à partir de ce moment là qu'il faut récupérer l'information et la recopier dans un tableau.
Après, je ne peux pas vous en dire davantage sans voir le fichier. Si vous voulez le coller ici sans données personnelles, je pourrai y regarder de plus près.
0