Problème solver

Bonjour à tous,

Mon but d'utiliser le solver pour optimiser un montage, mais en faisant varier des paramètres. J'ai donc fait un boucle pour relancer le solver à chaque fois. Cependant je remarque que le solver me donne toujours le même résultat peut importe le changement de paramètre. Quand je lance le solver à la mains il me donne un résultat différent que celui que me donne ma macro. J'ai vérifier les calcules et la macro me donne un résultat faux.

Le résultat du solver ne change quasiment jamais.

Sub Macro1()
'
' Macro1 Macro
y = 3

For x = 1050000 To 1500000 Step 50000

    Worksheets("% Optimal de holding").Range("E5") = x
    Worksheets("% Optimal de holding").Range("E6") = x - 200000

    Worksheets("% Optimal de holding").Cells(87, 2) = "Sans holding"
    Worksheets("% Optimal de holding").Cells(87, y) = Worksheets("Pas de holding").Range("C37")

    Worksheets("% Optimal de holding").Cells(89, 2) = "100% Holding et sortie"
    Worksheets("% Optimal de holding").Cells(89, y) = Worksheets("100% Holding").Range("C46")

    Worksheets("% Optimal de holding").Cells(90, 2) = "100% Holding sans sortie"
    Worksheets("% Optimal de holding").Cells(90, y) = Worksheets("100% Holding").Range("C51")

    SolverOk SetCell:="$C$78", MaxMinVal:=1, ValueOf:=0, ByChange:="$H$8", Engine:= _
        1, EngineDesc:="GRG Nonlinear"
    SolverSolve userfinish:=True

    Worksheets("% Optimal de holding").Cells(92, 2) = "Optimal pour sortir"
    Worksheets("% Optimal de holding").Cells(92, y) = Worksheets("% Optimal de holding").Range("C78")
    Worksheets("% Optimal de holding").Cells(93, 2) = "% holding dans k total"
    Worksheets("% Optimal de holding").Cells(93, y) = Worksheets("% Optimal de holding").Range("H8")

    SolverOk SetCell:="$C$85", MaxMinVal:=1, ValueOf:=0, ByChange:="$H$8", Engine:= _
        1, EngineDesc:="GRG Nonlinear"
    SolverSolve userfinish:=True

    Worksheets("% Optimal de holding").Cells(94, 2) = "Optimal pour rester"
    Worksheets("% Optimal de holding").Cells(94, y) = Worksheets("% Optimal de holding").Range("C85")
    Worksheets("% Optimal de holding").Cells(95, 2) = "% holding dans k total"
    Worksheets("% Optimal de holding").Cells(95, y) = Worksheets("% Optimal de holding").Range("H8")

    y = y + 1
    Next x
End Sub

bonjour,

merci de mettre un fichier représentatif de ce que tu veux faire, et notamment les formules dont tu cherches à optimiser le résultat (C78 et C85).

Voici le fichier.

7plus-value1.xlsm (33.96 Ko)

bonjour,

je ne vois pas de problème. Je pense qu'il pourrait y en avoir si la feuille "%100 optimal de holding" n'est pas la feuille active au moment de l'exécution de la macro.

A toutes fins utiles, j'ai ajouté l'activation de cette feuille et la reprogrammation complète du solver pour chaque simulation.

4plus-value1.xlsm (39.30 Ko)

S'il devait y avoir malgré tout une erreur (que je n'ai pas vue), peux-tu expliquer ce que tu fais pour avoir le résultat manuellement et pourquoi tu dis que le résultat via la macro n'est pas correct ?

bonjour,

5plus-value1-1.xlsm (64.47 Ko)

j'ai ajouté "Range("H8").ClearContents" en face de chaque solver pour RAZ cette cellule. Cela a l'air de fonctionner, mais je ne comprends pas le modèle.

PS. je ne sais pas créer un graphique dans votre feuille, vous avez blocqué quelque chose ?

Bonjour,

Bonne idée BsAlv je n’y avais pas pensé. Je vais essayer.

Le but de ma feuille est de calculer la fiscalité d’une vente de parts sociales dans différents cas et avec différents paramètres qui varient. Les paramètres étant le chiffre d’affaire, la valeur en 2022 et celle en 2026.

Un des moyens de payer moins de fiscalité est que la holding détienne quelques parts et que la personne physique aussi. J’utilise le solver pour définir cette répartition. La cellule h8 c’est la part apportée à la holding et la cellule c78 c’est le disponible après la vente pour l’associé.
Ma macro me sert à faire varier mes paramètres et de voir si la répartition calculée change.

Je sais que ce que me donne ma macro actuelle est faux car en lançant manuellement le solver il me donne un autre résultat. Et quand je change manuellement pour voit ce que ca donne je me rend compte que c’est la valeur du solver manuel qui est bonne.

Pour le graphique je ne sais pas pourquoi je ne peux pas en faire non plus. Encore un bug de plus.

Merci pour votre aide, j’essaie la solution de BsAlv mercredi.

comme il n'y a que 3 variables, on peut calculer toutes les combinaisons et les mettre dans un tableau, voir macro "boucler" et feuille "Blad1".

Quand on comparait la ligne 1 avec ligne 7, on gagne 45,8€ (C78) et 48.6€ (C85) quand on augmente la valeur de la société 2022 avec 100€

Comme créer des graphiques n'est pas possible dans votre classeur, je les ai crée dans un autre.

8graphiques.xlsx (119.72 Ko)
8plus-value1-1.xlsm (154.16 Ko)

Bonjour,

J'ai tester la solution de réinitialiser la cellule H8, cela ne fonctionne pas.

Finalement je vais utiliser la solution de mettre tout dans un tableau comme l'a proposé BsAlv.

Rechercher des sujets similaires à "probleme solver"