Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro pour solveur en boucle

Specialized

XLDnaute Nouveau
Bonjour,

je travaille en ce moment sur un tableau de répartition de charges (Ordres de Fabrication) sur les différents jours de la semaine.
Dans le cadre de ce travail, je me suis essayé au solveur, lequel j´aimerais utilisé en boucle dans une macro, j´ai donc tenté la chose suivante:

Sub Makro3()
'
' Makro3 Makro
'

'
SolverOk SetCell:="$R$11", MaxMinVal:=3, ValueOf:="0", ByChange:="$I$11:$Q$11"
SolverAdd CellRef:="$I$11:$Q$11", Relation:=4, FormulaText:="Ganzzahlig"
SolverAdd CellRef:="$I$11:$Q$11", Relation:=1, FormulaText:="1"
SolverOk SetCell:="$R$11", MaxMinVal:=3, ValueOf:="0", ByChange:="$I$11:$Q$11"


' Solve the model but do not display the Solver Results dialog box.
SolverSolve Userfinish:=True

' Finish and keep the final results.

End Sub


Ce que me pose probleme, étant débutant en macro, c´est de créer une boucle et d´éxécuter le solveur à partir de la ligne 11, jusqu´à la fin du tableau dont la longueur varie (ligne vide).

Voilà, en remerciant par avance tous ceux qui me liront.
 

CHALET53

XLDnaute Barbatruc
Re : Macro pour solveur en boucle

Bonjour,

Peut-être comme ceci (mais sans fichier : pas facile à vérifier)
Attention : je calcule la dernière ligne sur la colonne A. s'il n'y a rien dans cette colonne, remplacer par une autre lettre
j'ai aussi forcé derligne à 14 pour tester la boucle: à supprimer

Sub Makro3()
'
' Makro3 Makro
'

derligne = Sheets("Feuil1").Range("A65536").End(xlUp).Row
derligne = 14
'
For i = 11 To derligne
SolverOk SetCell:=Range("$R$" & 11), MaxMinVal:=3, ValueOf:="0", ByChange:=Range(Cells(i, 9), Cells(i, 17)) '"$I$11:$Q$11"
SolverAdd CellRef:=Range(Cells(i, 9), Cells(i, 17)), Relation:=4, FormulaText:="Ganzzahlig"
SolverAdd CellRef:=Range(Cells(i, 9), Cells(i, 17)), Relation:=1, FormulaText:="1"
SolverOk SetCell:=Range("$R$" & 11), MaxMinVal:=3, ValueOf:="0", ByChange:=Range(Cells(i, 9), Cells(i, 17))


' Solve the model but do not display the Solver Results dialog box.
SolverSolve Userfinish:=True
Next i
' Finish and keep the final results.

End Sub


a+
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…