OVH Cloud OVH Cloud

utiliser le solver dans une procédure sous VBA

2 réponses
Avatar
Sabi
Bonjour,

Mon but est de réaliser une procédure VBA qui utilise le solver d'Excel.

D'un niveau très moyen, j'ai tout de même essayé d'enregistrer une macro
pour y parvenir. Mais pour chaque ligne où j'exécute cette macro, une boîte
de dialogue s'ouvre avec pour intitulé "Solver Results". Deux possibilités
s'offrent alors à moi:
- soit je garde la solution du solver
- soit je restaure la valeur d'origine.

En fait, j'aimerais garder les solutions du solver sans avoir besoin de le
préciser à chaque ligne, j'ai donc rajouté la commande "SolverFinish
KeepFinal:= 1", mais cela n'a aucun effet.

Voici un extrait du code:
SolverOk SetCell:="$S$499", MaxMinVal:=3, ValueOf:="50", ByChange:="$R$499"
SolverSolve
SolverFinish KeepFinal:=1

SolverOk SetCell:="$S$500", MaxMinVal:=3, ValueOf:="50", ByChange:="$R$500"
SolverSolve
SolverFinish KeepFinal:=1

Je souhaiterais que la boîte de dialogue n'apparaisse plus et que la macro
répète l'opération sur une centaine de lignes.

Voili Voilou
Merci de bien vouloir m'éclairer,
Sabi.

2 réponses

Avatar
Pierre Fauconnier
Bonjour

Sub Effacer_Lignes()
Dim i As Integer

For i = Range("a65536").End(xlUp).Row To 1 Step -3
Rows(i).Delete
Next i
End Sub

Il faut commencer par le bas pour qu'Excel balaie bien toutes les lignes.

Il faut également adapter le saut ( step ) au nombre de lignes que tu veux
ignorer, et adapter le i de départ. Dans la macro que je donne, il commence
en supprimant la dernière ligne dans laquelle il y a quelque chose en
colonne A

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Sabi" a écrit dans le message de news:

Bonjour,

Mon but est de réaliser une procédure VBA qui utilise le solver d'Excel.

D'un niveau très moyen, j'ai tout de même essayé d'enregistrer une macro
pour y parvenir. Mais pour chaque ligne où j'exécute cette macro, une
boîte
de dialogue s'ouvre avec pour intitulé "Solver Results". Deux possibilités
s'offrent alors à moi:
- soit je garde la solution du solver
- soit je restaure la valeur d'origine.

En fait, j'aimerais garder les solutions du solver sans avoir besoin de le
préciser à chaque ligne, j'ai donc rajouté la commande "SolverFinish
KeepFinal:= 1", mais cela n'a aucun effet.

Voici un extrait du code:
SolverOk SetCell:="$S$499", MaxMinVal:=3, ValueOf:="50",
ByChange:="$R$499"
SolverSolve
SolverFinish KeepFinal:=1

SolverOk SetCell:="$S$500", MaxMinVal:=3, ValueOf:="50",
ByChange:="$R$500"
SolverSolve
SolverFinish KeepFinal:=1

Je souhaiterais que la boîte de dialogue n'apparaisse plus et que la macro
répète l'opération sur une centaine de lignes.

Voili Voilou
Merci de bien vouloir m'éclairer,
Sabi.


Avatar
Pierre Fauconnier
Oups... Erreur d'aiguillage... Désolé
"Sabi" a écrit dans le message de news:

Bonjour,

Mon but est de réaliser une procédure VBA qui utilise le solver d'Excel.

D'un niveau très moyen, j'ai tout de même essayé d'enregistrer une macro
pour y parvenir. Mais pour chaque ligne où j'exécute cette macro, une
boîte
de dialogue s'ouvre avec pour intitulé "Solver Results". Deux possibilités
s'offrent alors à moi:
- soit je garde la solution du solver
- soit je restaure la valeur d'origine.

En fait, j'aimerais garder les solutions du solver sans avoir besoin de le
préciser à chaque ligne, j'ai donc rajouté la commande "SolverFinish
KeepFinal:= 1", mais cela n'a aucun effet.

Voici un extrait du code:
SolverOk SetCell:="$S$499", MaxMinVal:=3, ValueOf:="50",
ByChange:="$R$499"
SolverSolve
SolverFinish KeepFinal:=1

SolverOk SetCell:="$S$500", MaxMinVal:=3, ValueOf:="50",
ByChange:="$R$500"
SolverSolve
SolverFinish KeepFinal:=1

Je souhaiterais que la boîte de dialogue n'apparaisse plus et que la macro
répète l'opération sur une centaine de lignes.

Voili Voilou
Merci de bien vouloir m'éclairer,
Sabi.