Macro solver en 2010 ne fonctionne pas en 2007

goldenaggregate Messages postés 1 Statut Membre -  
Heliotte Messages postés 1561 Statut Membre -
Bonjour,





j'ai écrit le code suivant :

Private Sub CommandButton1_Click()

Worksheets("Calculs").Unprotect Password:="XXX"


Worksheets("Calculs").Range("D12").Value = 30
Worksheets("Calculs").Range("K7").Value = 300
Worksheets("Calculs").Range("K6").Value = 300
Worksheets("Calculs").Range("K8").Value = 300
Worksheets("Calculs").Range("K9").Value = 300
Worksheets("Calculs").Range("K10").Value = 300
Worksheets("Calculs").Range("K24").Value = 300
Worksheets("Calculs").Range("K25").Value = 300
Worksheets("Calculs").Range("K26").Value = 300
Worksheets("Calculs").Range("K27").Value = 300
Worksheets("Calculs").Range("K28").Value = 300



Worksheets("Calculs").Activate
SolverReset
SolverOptions Precision:=0.001
SolverOK SetCell:=Worksheets("Calculs").Range("L33"), _
MaxMinVal:=2, _
ByChange:=Worksheets("Calculs").Range("K6:K10,K24:K28,D12"), Engine:=1

SolverAdd CellRef:=Worksheets("Calculs").Range("K6:K10"), _
Relation:=1, _
FormulaText:=1000

SolverAdd CellRef:=Worksheets("Calculs").Range("K6:K10"), _
Relation:=3, _
FormulaText:=0

SolverAdd CellRef:=Worksheets("Calculs").Range("K24:K28"), _
Relation:=1, _
FormulaText:=1000

SolverAdd CellRef:=Worksheets("Calculs").Range("K24:K28"), _
Relation:=3, _
FormulaText:=0

SolverAdd CellRef:=Worksheets("Calculs").Range("D12"), _
Relation:=1, _
FormulaText:=150

SolverAdd CellRef:=Worksheets("Calculs").Range("D12"), _
Relation:=3, _
FormulaText:=0

SolverSolve UserFinish:=True
SolverSave SaveArea:=Range("A45")
Worksheets("Paramètres d'entrée").Activate

Worksheets("Calculs").Protect Password:="XXX", DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub


Il marche très bien en 2010 mais ne fonctionne pas sur les versions antérieures. Quelqu'un aurait-il une idée pourquoi ? Comment on peut modifier le code pour qu'il fonctionne sur n'importe quelle version d'Excel ?

Thanks.
A voir également:

1 réponse

Heliotte Messages postés 1561 Statut Membre 92
 
Bonsoir goldenaggregate,
Sous Excel, tu mets en route une nouvelle macro,
Tu encodes les nombres à la bonne place, tu exécute le solveur, et quand tu as fini ..
Tu arrêtes la macro
Puis, tu ouvres la feuille de code, tu nettoies le code, tu le nomme correctement.
Et voilà !
-1