Problème boucle For...Next

Signaler
Messages postés
2
Date d'inscription
dimanche 10 mai 2009
Statut
Membre
Dernière intervention
13 mai 2009
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
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

Messages postés
2
Date d'inscription
dimanche 10 mai 2009
Statut
Membre
Dernière intervention
13 mai 2009

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.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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)