Solver fait 'sauter' l'écran...

  • Initiateur de la discussion Initiateur de la discussion SHA
  • 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

SHA

Guest
Bonjour le forum,

Une macro appelle le solveur :

Application.ScreenUpdating = False ' Fige l'affichage

' Chargement d'un scénario de contraintes
SolverLoad LoadArea:=Range("SimulationAvecContraintesMAMOMAT")

SolverOk SetCell:="$D$68", MaxMinVal:=3, ValueOf:=Str(Range("SimulationValeurCible")), _
ByChange:="SimulationValeurCibleP1,SimulationValeurCibleP2"
SolverSolve UserFinish:=True

Application.ScreenUpdating = True ' Rétablit l'affichage

Malgré le ScreenUpdating False l'écran saute 2 ou 3 fois dès le SolverLoad; en mode débogage il apparait la fenêtre 'pas à pas' du Solveur... qui n'apparait pas en exécution normale.

J'aimerais un écran bien stable, bien rassurant !

Quelqu'un a-t-il croisé ce problème ? ... ou sa solution (?-)

Amitié,

Jean-Jacques
 
Re : Solver fait 'sauter' l'écran...

bonjour Jean-Jacques

Je suppose que SolverLoad sert à charger le solver et dans ce cas il apparaît à l'écran (je ne suis pas sécialiste du solver)
J’ai un code qui fonctionne sans utiliser SolverLoad et lorsque j’exécute la macro, le solver n’apparaît pas => il n'est pas nécessaire d'utiliser Application.ScreenUpdating. Par contre dans outils/références de vba, SOLVER.xls est coché

voici le code que j'utilise:

i = 1
j = 6
Do While (Not (IsEmpty(Cells(i, j))))
Cells(5, 2).Value = Cells(i, j)
SolverSolve Userfinish:=True
Cells(i, j + 1).Value = Cells(6, 1)
i = i + 1
Loop

peut-être cela t'aidera-t-il ?

albert
 
Re : Solver fait 'sauter' l'écran...

Merci de ta réponse, effectivement Solver Load charge des paramètres de résolution préalablement mémorisés (bouton options du solver).

Le problème vient d'une grande susceptibilité du Solver quant à l'ordre des instructions, même si dans le désordre il résoud l'équation.

Il ne faut pas se fier à l'enregistrement d'une macro, et ne conserver que les lignes:

Solver Load Area:=Range("ContrainteJeu1") ' Cette aire peut être nommée
SolverSolve UserFinish:=True

Pas besoin ni de Solver OK, ni de SolverOptions leurs paramètres sont dans les lignes de ton aire "ContrainteJeu1"

...

A+

JJ
 
- 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
0
Affichages
911
B
K
Réponses
2
Affichages
3 K
K
S
Réponses
1
Affichages
2 K
L
Réponses
1
Affichages
7 K
Lefabdepau
L
S
  • Question Question
Réponses
2
Affichages
1 K
seb94160
S
E
Réponses
0
Affichages
760
E
E
Réponses
0
Affichages
817
E
T
  • Question Question
Réponses
3
Affichages
1 K
thierry.bayard
T
D
Réponses
0
Affichages
828
Der-ru
D
E
Réponses
14
Affichages
6 K
eniotacom
E
F
Réponses
6
Affichages
3 K
F
G
Réponses
14
Affichages
4 K
G
Réponses
2
Affichages
3 K
Gulle
G
C
  • Question Question
Réponses
7
Affichages
3 K
A
T
  • Question Question
Réponses
0
Affichages
1 K
Thierry
T
C
  • Question Question
Réponses
4
Affichages
2 K
clouistiti
C
M
Réponses
6
Affichages
2 K
Y
Retour