Merci Michel,
J'ai utilisé Cells(x, y) et je crois être près du but, mais il y a quelque chose qui cloche dans ma macro:
Lorsque je démarre la procédure, la macro s'arrete en cours d'éxecution et Excel me renvoie le message: 'Solveur: une erreur est survenue, ou la mémoire disponible est saturée'.
En tentant de résoudre le problème, j'ai découvert que le simple fait d'ouvrir la boite de saisie des paramètres du Solveur via le menu Outil/Solveur... et de la refermer sans avoir modifié quoi que ce soit règle le problème!?! ceci me laisse perplexe.
Il semble que le simple fait d'ouvrir la boite de saisie des paramètres du Solveur via le menu Outil/Solveur... active certains paramètres du Solveur qui sont nécessaires à la résolution de mon problème.
Voici le code VBA de ma procédure:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = '$B$2' Then
Dim i As Long 'declare variable i loop
Dim x As Long 'declare variable x row
' A loop that will solve the equation for the 26 rows of my table.
i = 1
For i = 1 To 26
x = i + 6 'set row number
' Set up the parameters for the model.
' Set the target cell Ex to a maximum value by changing cell Fx.
SolverReset
' Add constraint: Ex = Fx.
SolverAdd CellRef:=Cells(x, 5).Address, Relation:=2, _
FormulaText:=Cells(x, 6).Address
SolverOK SetCell:=Cells(x, 5).Address, MaxMinVal:=1, _
ByChange:=Cells(x, 6).Address
' Solve the model but do not display the Solver Results dialog box.
SolverSolve UserFinish:=True
' Delete constraint: Ex = Fx.
SolverDelete CellRef:=Cells(x, 5).Address, Relation:=2, _
FormulaText:=Cells(x, 6).Address
' Finish and keep the final results.
SolverFinish KeepFinal:=1
Next i
End If
End Sub
Est-ce que quelqu'un aurait une idée géniale pour que ma procédure fonctionne du premier coup?
Toute suggestion sera appréciée,