Macro pour solveur en boucle

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour