Macro pour solveur en boucle

  • Initiateur de la discussion Initiateur de la discussion Specialized
  • Date de début Date de début

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 !

S

Specialized

Guest
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

B
Réponses
2
Affichages
2 K
B
Réponses
0
Affichages
904
B
E
Réponses
0
Affichages
757
E
E
Réponses
0
Affichages
811
E
K
Réponses
2
Affichages
2 K
K
S
  • Question Question
Réponses
2
Affichages
1 K
seb94160
S
L
Réponses
1
Affichages
7 K
Lefabdepau
L
T
  • Question Question
Réponses
3
Affichages
1 K
thierry.bayard
T
D
Réponses
0
Affichages
822
Der-ru
D
E
Réponses
2
Affichages
1 K
E
K
Réponses
4
Affichages
876
knemah
K
T
Réponses
2
Affichages
1 K
tienne1
T
E
Réponses
14
Affichages
6 K
eniotacom
E
Retour