Boucler un solveur VBA - VB/VBA/VBS - Programmation
Marsh Posté le 10-12-2008 à 11:23:19
Bonjour,
tu peux utiliser
for i= 1, 6
X=Chr(66 + i)
et remplacer les $C par $" & X & " dans tes lignes que tu placeras ici
next
Cordialement
Marsh Posté le 10-12-2008 à 12:11:18
j'ai utilisé ce code :
Sub Test()
Dim i As Integer
Dim x As Integer
For i = 1 To 6
With x = Chr(66 + i)
SolverReset
SolverOk SetCell:="$ " & x & " $17", MaxMinVal:=2, ValueOf:="0", ByChange:="$ " & x & "$12:" & x & "$14"
SolverAdd CellRef:="$ " & x & "$12", Relation:=1, FormulaText:="1"
SolverAdd CellRef:="$ " & x & "$12", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$ " & x & " $13", Relation:=1, FormulaText:="1"
SolverAdd CellRef:="$ " & x & "$13", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$ " & x & "$14", Relation:=1, FormulaText:="1"
SolverAdd CellRef:="$ " & x & "$14", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$ " & x & "$15", Relation:=2, FormulaText:="1"
SolverAdd CellRef:="$ " & x & "$16", Relation:=2, FormulaText:="$ " & x & "$21"
SolverSolve userFinish:=True
End With
Next
End Sub
mais cela ne modifie pas mon tableau.
Je voudrais que cela modifie juste les colonnes C D E F G H
Marsh Posté le 10-12-2008 à 12:35:43
Bonjour,
si c'est exactement ce que tu as écrit, il y a des espaces en trop dans tes chaines: "$ " devrait-être "$"
" $17" devrait être "$17"
sinon je ne vois pas
le with est superflu.
Marsh Posté le 10-12-2008 à 12:40:20
il me dit qu'il y a une erreur d'incompatibilité de type et une erreur d'éxécution 13
Marsh Posté le 10-12-2008 à 12:47:55
c'est bon j'ai enlevé la déclaration des variable et ca marche nikel !!
merci beaucoup !
Marsh Posté le 10-12-2008 à 13:03:46
c'est vrai, je n'avais pas vu tes dim, pour x c'est un string
Marsh Posté le 10-12-2008 à 10:42:18
Bonjour à tous
j'aimerais boucler mon solveur afin qu'il me remplisse un tableau. ainsi je veux un code unique qui se boucle en changeant juste de colonne.
voici le code d'origine :
Sub Test()
SolverReset
SolverOk SetCell:="$C$17", MaxMinVal:=2, ValueOf:="0", ByChange:="$C$12:$C$14"
SolverAdd CellRef:="$C$12", Relation:=1, FormulaText:="1"
SolverAdd CellRef:="$C$12", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$C$13", Relation:=1, FormulaText:="1"
SolverAdd CellRef:="$C$13", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$C$14", Relation:=1, FormulaText:="1"
SolverAdd CellRef:="$C$14", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$C$15", Relation:=2, FormulaText:="1"
SolverAdd CellRef:="$C$16", Relation:=2, FormulaText:="$C$21"
SolverSolve userFinish:=True
End Sub
Ce code, je le réécrit pour la colonne D, E, F etc...jusqu'à H , or j'en voudrais juste un qui boucle toutes les colonnes.
Comment pourrais-je faire ?
Merci d'avance !