Boucler un solveur VBA

Boucler un solveur VBA - VB/VBA/VBS - Programmation

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 !
 

Reply

Marsh Posté le 10-12-2008 à 10:42:18   

Reply

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


Message édité par seniorpapou le 10-12-2008 à 11:24:06
Reply

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

Reply

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.

Reply

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

Reply

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 !

Reply

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed