M
Mathieu
Guest
Bonjour à tous,
Dans Excel 2003 (Windows XP), je tente d'utiliser le solveur à partir d'une macro pour résoudre une formule qui fait référence à son propre résultat. La formule est inclue dans une colonne d'une table de données et doit être résolue pour chaque ligne de la table.
J'ai commencé par tester la méthode pour la premiere ligne de la table de donnée et ça fonctionne correctement. Voici le code VBA:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = '$B$2' Then
' Set the target cell E8 to a maximum value by changing cell F8.
Cells(8, 6) = 1
SolverOK SetCell:=Range('E8'), MaxMinVal:=1, _
ByChange:=Range('F8')
' Add constraint.
SolverAdd CellRef:=Range('E8'), Relation:=2, _
FormulaText:='$F$8'
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
End If
End Sub
Maintenant, j'aimerais inclure une boucle et changer les adresses de cellules pour des variables incrémentées afin que la macro solutionne l'équation pour chacune des lignes de ma table de données:
Boucle no1:
SolverOK SetCell:=Range('E8'), ByChange:=Range('F8')
SolverAdd CellRef:=Range('E8'), Relation:=2, _ FormulaText:='$F$8'
Boucle no2:
SolverOK SetCell:=Range('E9'), ByChange:=Range('F9')
SolverAdd CellRef:=Range('E9'), Relation:=2, _ FormulaText:='$F$9'
... et ainsi de suite jusqu'au bas de ma liste de données.
Est-ce que quelqu'un peut m'aider avec ce problème?
Merci.
Dans Excel 2003 (Windows XP), je tente d'utiliser le solveur à partir d'une macro pour résoudre une formule qui fait référence à son propre résultat. La formule est inclue dans une colonne d'une table de données et doit être résolue pour chaque ligne de la table.
J'ai commencé par tester la méthode pour la premiere ligne de la table de donnée et ça fonctionne correctement. Voici le code VBA:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = '$B$2' Then
' Set the target cell E8 to a maximum value by changing cell F8.
Cells(8, 6) = 1
SolverOK SetCell:=Range('E8'), MaxMinVal:=1, _
ByChange:=Range('F8')
' Add constraint.
SolverAdd CellRef:=Range('E8'), Relation:=2, _
FormulaText:='$F$8'
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
End If
End Sub
Maintenant, j'aimerais inclure une boucle et changer les adresses de cellules pour des variables incrémentées afin que la macro solutionne l'équation pour chacune des lignes de ma table de données:
Boucle no1:
SolverOK SetCell:=Range('E8'), ByChange:=Range('F8')
SolverAdd CellRef:=Range('E8'), Relation:=2, _ FormulaText:='$F$8'
Boucle no2:
SolverOK SetCell:=Range('E9'), ByChange:=Range('F9')
SolverAdd CellRef:=Range('E9'), Relation:=2, _ FormulaText:='$F$9'
... et ainsi de suite jusqu'au bas de ma liste de données.
Est-ce que quelqu'un peut m'aider avec ce problème?
Merci.