OVH Cloud OVH Cloud

solveur

4 réponses
Avatar
poca
bonjour,

j'ai fait une boucle sous vba qui à chaque itération utilise le solveur mais
à chacune de ces itérations, il y a une fenêtre qui s'ouvre Résultat du
solveur
soit je peux cliquer sur garder la solution du solveur
soit sur rétablir les valeurs d'origine.

Le problème est que j'ai un certain nb de ligne à traiter et je ne peux
vraiment pas faire autrement que de me servir du solveur.
Existe-t-il du code vba pour coutourner ce pb car en ce qui me concerne
c'est garder la solution du solveur qui m'intéresse.
Je ne connaissais pas le code j'ai donc fait une macro pour le trouver et il
n'y a pas de code dans vb qui s'affiche pour ça.

merci d'avance pour votre aide
poca
extrait de mon code:
While (Cells(ligne, colonne).Value <> "")

Cells(ligne, colonne).Select
Selection.Copy
Sheets("Bulletin de paie Fonctionnaire").Select
Cells(9, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Calculate

Sheets("Bulletin de paie Droit Commun").Select
Calculate

Range("F20").Select
SolverOk SetCell:="$I$52", MaxMinVal:=1, ValueOf:="0", ByChange:="$F$20"
SolverSolve

Range("F20").Select
Selection.Copy

Sheets("Résultats").Select
Cells(ligne + 2, 5).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

Sheets("Bulletin de paie Droit Commun").Select
Range("I52").Select
Selection.Copy

Sheets("Résultats").Select
Cells(ligne + 2, 4).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

ligne = ligne + 1
Sheets("Données").Select

Wend

4 réponses

Avatar
Michel NOLF
Extrait de l'aide VBA en m'excusant de la presentation
SolverFinish, fonction
Indique à Microsoft Excel comment traiter les résultats et quel type de
rapport créer une fois le processus de résolution terminé.

Avant d'utiliser cette fonction, vous devez établir une référence à la macro
complémentaire du Solveur. Lorsque Visual Basic Editor est actif, cliquez
dans le menu Outils sur Références, puis activez la case à cocher SOLVER.XLA
sous Références disponibles. Si SOLVER.XLA ne figure pas sous Références
disponibles, cliquez sur Parcourir et ouvrez Solver.xla dans le sous-dossier
OfficeMacrolib.

Syntaxe

SolverFinish(KeepFinal, ReportArray)

KeepFinal Argument de type Variant facultatif. Il peut avoir la valeur 1
ou 2. Si l'argument KeepFinal a la valeur 1 ou qu'il n'est pas spécifié, les
valeurs de la résolution finale sont conservées dans les cellules variables,
remplaçant ainsi toutes les valeurs antérieures. Si cet argument a la valeur
2, les valeurs de la résolution finale sont annulées, et les valeurs
précédentes sont rétablies.

ReportArray Argument de type Variant facultatif. Type de rapport créé par
Microsoft Excel au terme de l'exécution du Solveur : la valeur 1 crée un
rapport des réponses, 2 un rapport de sensibilité et 3 un rapport des
limites. Utilisez la fonction Array pour spécifier les rapports à afficher,
par exemple, ReportArray:= Array(1,3).

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

bonjour,

j'ai fait une boucle sous vba qui à chaque itération utilise le solveur
mais
à chacune de ces itérations, il y a une fenêtre qui s'ouvre Résultat du
solveur
soit je peux cliquer sur garder la solution du solveur
soit sur rétablir les valeurs d'origine.

Le problème est que j'ai un certain nb de ligne à traiter et je ne peux
vraiment pas faire autrement que de me servir du solveur.
Existe-t-il du code vba pour coutourner ce pb car en ce qui me concerne
c'est garder la solution du solveur qui m'intéresse.
Je ne connaissais pas le code j'ai donc fait une macro pour le trouver et
il
n'y a pas de code dans vb qui s'affiche pour ça.

merci d'avance pour votre aide
poca
extrait de mon code:
While (Cells(ligne, colonne).Value <> "")

Cells(ligne, colonne).Select
Selection.Copy
Sheets("Bulletin de paie Fonctionnaire").Select
Cells(9, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

Calculate

Sheets("Bulletin de paie Droit Commun").Select
Calculate

Range("F20").Select
SolverOk SetCell:="$I$52", MaxMinVal:=1, ValueOf:="0",
ByChange:="$F$20"
SolverSolve

Range("F20").Select
Selection.Copy

Sheets("Résultats").Select
Cells(ligne + 2, 5).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

Sheets("Bulletin de paie Droit Commun").Select
Range("I52").Select
Selection.Copy

Sheets("Résultats").Select
Cells(ligne + 2, 4).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

ligne = ligne + 1
Sheets("Données").Select

Wend



Avatar
Bourby
bonjour,

avec l'enregistreur de macros, j'obtiens:
Range("D3").GoalSeek Goal:=2, ChangingCell:=Range("B3")
qui ne demande pas confirmation.

Cordialement





"poca" a écrit dans le message news:

bonjour,

j'ai fait une boucle sous vba qui à chaque itération utilise le solveur
mais

à chacune de ces itérations, il y a une fenêtre qui s'ouvre Résultat du
solveur
soit je peux cliquer sur garder la solution du solveur
soit sur rétablir les valeurs d'origine.

Le problème est que j'ai un certain nb de ligne à traiter et je ne peux
vraiment pas faire autrement que de me servir du solveur.
Existe-t-il du code vba pour coutourner ce pb car en ce qui me concerne
c'est garder la solution du solveur qui m'intéresse.
Je ne connaissais pas le code j'ai donc fait une macro pour le trouver et
il

n'y a pas de code dans vb qui s'affiche pour ça.

merci d'avance pour votre aide
poca
extrait de mon code:
While (Cells(ligne, colonne).Value <> "")

Cells(ligne, colonne).Select
Selection.Copy
Sheets("Bulletin de paie Fonctionnaire").Select
Cells(9, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

Calculate

Sheets("Bulletin de paie Droit Commun").Select
Calculate

Range("F20").Select
SolverOk SetCell:="$I$52", MaxMinVal:=1, ValueOf:="0",
ByChange:="$F$20"

SolverSolve

Range("F20").Select
Selection.Copy

Sheets("Résultats").Select
Cells(ligne + 2, 5).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

Sheets("Bulletin de paie Droit Commun").Select
Range("I52").Select
Selection.Copy

Sheets("Résultats").Select
Cells(ligne + 2, 4).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

ligne = ligne + 1
Sheets("Données").Select

Wend



Avatar
poca
merci beaucoup ça répond parfaitement à ma question


Extrait de l'aide VBA en m'excusant de la presentation
SolverFinish, fonction
Indique à Microsoft Excel comment traiter les résultats et quel type de
rapport créer une fois le processus de résolution terminé.

Avant d'utiliser cette fonction, vous devez établir une référence à la macro
complémentaire du Solveur. Lorsque Visual Basic Editor est actif, cliquez
dans le menu Outils sur Références, puis activez la case à cocher SOLVER.XLA
sous Références disponibles. Si SOLVER.XLA ne figure pas sous Références
disponibles, cliquez sur Parcourir et ouvrez Solver.xla dans le sous-dossier
OfficeMacrolib.

Syntaxe

SolverFinish(KeepFinal, ReportArray)

KeepFinal Argument de type Variant facultatif. Il peut avoir la valeur 1
ou 2. Si l'argument KeepFinal a la valeur 1 ou qu'il n'est pas spécifié, les
valeurs de la résolution finale sont conservées dans les cellules variables,
remplaçant ainsi toutes les valeurs antérieures. Si cet argument a la valeur
2, les valeurs de la résolution finale sont annulées, et les valeurs
précédentes sont rétablies.

ReportArray Argument de type Variant facultatif. Type de rapport créé par
Microsoft Excel au terme de l'exécution du Solveur : la valeur 1 crée un
rapport des réponses, 2 un rapport de sensibilité et 3 un rapport des
limites. Utilisez la fonction Array pour spécifier les rapports à afficher,
par exemple, ReportArray:= Array(1,3).

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

bonjour,

j'ai fait une boucle sous vba qui à chaque itération utilise le solveur
mais
à chacune de ces itérations, il y a une fenêtre qui s'ouvre Résultat du
solveur
soit je peux cliquer sur garder la solution du solveur
soit sur rétablir les valeurs d'origine.

Le problème est que j'ai un certain nb de ligne à traiter et je ne peux
vraiment pas faire autrement que de me servir du solveur.
Existe-t-il du code vba pour coutourner ce pb car en ce qui me concerne
c'est garder la solution du solveur qui m'intéresse.
Je ne connaissais pas le code j'ai donc fait une macro pour le trouver et
il
n'y a pas de code dans vb qui s'affiche pour ça.

merci d'avance pour votre aide
poca
extrait de mon code:
While (Cells(ligne, colonne).Value <> "")

Cells(ligne, colonne).Select
Selection.Copy
Sheets("Bulletin de paie Fonctionnaire").Select
Cells(9, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

Calculate

Sheets("Bulletin de paie Droit Commun").Select
Calculate

Range("F20").Select
SolverOk SetCell:="$I$52", MaxMinVal:=1, ValueOf:="0",
ByChange:="$F$20"
SolverSolve

Range("F20").Select
Selection.Copy

Sheets("Résultats").Select
Cells(ligne + 2, 5).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

Sheets("Bulletin de paie Droit Commun").Select
Range("I52").Select
Selection.Copy

Sheets("Résultats").Select
Cells(ligne + 2, 4).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

ligne = ligne + 1
Sheets("Données").Select

Wend








Avatar
poca
merci beaucoup ça répond parfaitement à ma question



bonjour,

avec l'enregistreur de macros, j'obtiens:
Range("D3").GoalSeek Goal:=2, ChangingCell:=Range("B3")
qui ne demande pas confirmation.

Cordialement





"poca" a écrit dans le message news:

bonjour,

j'ai fait une boucle sous vba qui à chaque itération utilise le solveur
mais

à chacune de ces itérations, il y a une fenêtre qui s'ouvre Résultat du
solveur
soit je peux cliquer sur garder la solution du solveur
soit sur rétablir les valeurs d'origine.

Le problème est que j'ai un certain nb de ligne à traiter et je ne peux
vraiment pas faire autrement que de me servir du solveur.
Existe-t-il du code vba pour coutourner ce pb car en ce qui me concerne
c'est garder la solution du solveur qui m'intéresse.
Je ne connaissais pas le code j'ai donc fait une macro pour le trouver et
il

n'y a pas de code dans vb qui s'affiche pour ça.

merci d'avance pour votre aide
poca
extrait de mon code:
While (Cells(ligne, colonne).Value <> "")

Cells(ligne, colonne).Select
Selection.Copy
Sheets("Bulletin de paie Fonctionnaire").Select
Cells(9, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

Calculate

Sheets("Bulletin de paie Droit Commun").Select
Calculate

Range("F20").Select
SolverOk SetCell:="$I$52", MaxMinVal:=1, ValueOf:="0",
ByChange:="$F$20"

SolverSolve

Range("F20").Select
Selection.Copy

Sheets("Résultats").Select
Cells(ligne + 2, 5).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

Sheets("Bulletin de paie Droit Commun").Select
Range("I52").Select
Selection.Copy

Sheets("Résultats").Select
Cells(ligne + 2, 4).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

ligne = ligne + 1
Sheets("Données").Select

Wend