Problème boucle For...Next

cs_djebenz Messages postés 2 Date d'inscription dimanche 10 mai 2009 Statut Membre Dernière intervention 13 mai 2009 - 13 mai 2009 à 12:21
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 13 mai 2009 à 12:45
Bonjour, je suis débutant en programmation et mon plus gros problème concerne surtout les codes VBA.

J'ai programmé une application qui devrait effectué la chose suivant :
- maximiser une cellule contenant une formule excel du type "=LN(E4)-D4^2/E4"
- cette cellule devra être maximiser selon 3 variables
- sous la contrainte=>la somme des 3 variables devra être égale à 1

Pour cela j'utilise le Solver. Mon problème c'est que je dois répéter cette opération de la ligne 4 à la ligne 161(Un processus donc très long à faire à la main).
Par conséquent, à l'aide du "macro recorder" j'ai programmé la chose suivante :


Sub Macro3()

For i = 4 To 161

SolverReset
SolverOk SetCell:=Cells(i, 6), MaxMinVal:=1, ValueOf:="0", ByChange:="Cells(i,7):Cells(i,9)"
' par ByChange:="Cells(i,7):Cells(i,9)" je veux faire varier ByChange:="$G$4:$I$4"

SolverAdd CellRef:=Cells(i, 10), Relation:=2, FormulaText:="1"
' par CellRef:=Cells(i, 10) je veux faire varier "$J$6"

SolverOk SetCell:=Cells(i, 6), MaxMinVal:=1, ValueOf:="0", ByChange:="Cells(i,7):Cells(i,9)"
'par ByChange:="Cells(i,7):Cells(i,9)" je veux faire varier ByChange:="$G$6:$I$6"

SolverSolve userfinish:=True

Next i

End Sub


Le problème c'est que la boucle tourne dans le vide sans faire tourner le solver. Je me doute bien que mon problème reside dans mes notation telle que ByChange:="Cells(i,7):Cells(i,9)" puisque lorsque cette notation est remplacé par "$G$6:$I$6" ça marche mais je connais pas le langage.

Est-ce que quelqu'un pourrait m'aider ? merci

PS:je ne suis pas sur d'être dans le thème bon, veillez m'en excusez si c'est le cas.

2 réponses

cs_djebenz Messages postés 2 Date d'inscription dimanche 10 mai 2009 Statut Membre Dernière intervention 13 mai 2009
13 mai 2009 à 12:25
Mince, la mise en forme n'est pas passée.
désolé.
Je ne sais pas si vous allez pouvoir comprendre quelque chose à mon code.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 mai 2009 à 12:45
Salut
En effet, c'est illisible.
Peux-tu recommencer en n'utilisant la zone de saisie "moderne" : clique sur le message "Si vous n'arrivez pas à saisie ..." situé en dessous du bouton "Ajouter"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous