Utilisation de plusieurs solveur sur une même feuille

Bonjour,

J'ai créé un ficher permettant de simuler l'efficacité d'un échangeur. Le but est d'essayer diffèrent échangeur et voir le qu'elle fonctionne le mieux, avec le quelle nous réaliserons le plus d'économie.

Pour cela, j'ai besoin d'utilisé la fonction solveur. Sauf, que pour mon cas je dois l'utilisé près de 60 fois...

Nous pouvons voir dans la partie haute (ligne 1 à 9) les donnée constructeur.

La ligne 11 à 44 la partie calculatoire.

Démarche que je fait actuellement:

La ligne 15 correspond au même condition constructeur.

Pour l'échangeur chaud (Ligne 15):

La valeur variable est: Tsortie à -9°C (B15)

La valeur cible est DTLM à -9 (J15)

La contrainte est : DTLM.2=DTLM soit (I15=J15)

Il me donne Tsortie=-3.10°C (B15)

Pour l'échangeur froid (Ligne 15):

Je reprend la valeur calculé précédemment Tsortie=3.10°C, soit : (B15) =(L15)

La valeur variable est: Tsortie à -9°C (M15)

La valeur cible est DTLM à -9 (U15)

La contrainte est : DTLM.2=DTLM soit (U15=T15)

Il me donne Tsortie=14.4°C (M15)

Pour l'échangeur chaud (Ligne 16) :

Je reprend la valeur calculé précédemment Tsortie=14.4°C, soit : (M15) =(A16)

La valeur variable est: Tsortie à -8°C (B16)

La valeur cible est DTLM à -8 (J16)

La contrainte est : DTLM.2=DTLM soit (J16=I16)

Il me donne Tsortie=-2.35°C (B16)

Et ainsi de suite jusqu'à la fin

Je cherche donc a faire un scenario ou un programme, un solveur permettant de tout faire d'une traite.

Si je n'ai pas étais claire dans mes explication, n'hésites pas :)

Je ne suis pas du tout certain d'avoir répondu à ton besoin, mais j'ai renommé la cellule C3 en _C3

Idem pour les cellules C4, C5, C7, F3, F4, F7, F9, I3, I4 et I7 (maintenant en fond bleu).

Modifié la ligne 15 en conséquence et étendu jusqu'à la ligne 44 les cellules qui utilisent les données du constructeur, à savoir D15, G15, H15, J15, O15, R15 et S15.

Alors, je ne comprend pas trop ce que tu as fait, mais j'ai l'impression que tout les formule (de la ligne 15 à la ligne 40) utilisant les donnée on étais remplacé par " _C3*_C7/3600*_C4*C15 " au lieu de " $C$3*$C$7/3600*$C$4*C15 " à l'origine.

Si le tiret du 8 sert a remplacer les dollars, alors non ce n'est pas ça.

Au faite, sur le premier texte, quand je met " il me donne Tsortie=...." je dois lancer le solveur.

Je peu faire une petite vidéo si nécessaire, pour vous montez la démarche pour arriver jusqu' la fin

Le tiret du 8 ne modifie en rien tes formules.

Prenons la formule de la cellule D15 :

On avait : =$C$3*$C$7/3600*$C$4*C15 maintenant on a : =_C3*_C7/3600*_C4*C15

Maintenant prenons la formule de la cellule D16 :

On avait : =$C$3*$C$7/3600*$C$4*C16 maintenant on a : =_C3*_C7/3600*_C4*C16

_C3, _C4 et _C16 sont des cellules "nommées", elles ne changent plus, cela te permet de recopier la ligne 15 vers le bas en conservant les mêmes formules.

Une vidéo serait effectivement la bienvenue.

Bonjour à tous,

proposition d'automatisation de l'utilisation du Solveur.

Sub aargh()
    For i = 15 To 44 'les lignes à évaluer

        'tableau 1
        If i = 15 Then Range("A15") = Range("C5") Else Cells(i, 1) = Cells(i - 1, "M") 'initialisation de la température d'entrée
                SolverReset
        solveroptions AssumeNonNeg:=False
        SolverOk SetCell:="$I$" & i, MaxMinVal:=1, ValueOf:=0, ByChange:="$B$" & i, Engine:=1, EngineDesc:="GRG Nonlinear"
        SolverAdd CellRef:="$I$" & i, Relation:=2, FormulaText:="$J$" & i
        SolverSolve userfinish:=True

        'tableau 2
        Cells(i, "L") = Cells(i, "B") 'initialisation de la température d'entrée
        SolverReset
        solveroptions AssumeNonNeg:=False
        SolverOk SetCell:="$T$" & i, MaxMinVal:=1, ValueOf:=0, ByChange:="$M$" & i, Engine:=1, EngineDesc:="GRG Nonlinear"
        SolverAdd CellRef:="$T$" & i, Relation:=2, FormulaText:="$U$" & i
        SolverSolve userfinish:=True

    Next i
End Sub

nécessite l'activation de l'add-in solver dans les options excel et la sélection du solver dans les références vba

Il y a une formule qui utilise LN(parfois le paramètre est négatif, ce qui donne une erreur de calcul)

@optomix

J'ai fait ça mais malheureusement on ne vois pas la fenêtre solveur ...

ci tu ecrit sur youtube:

Perf echangeur sans élec Excel 2021 02 06 11 25 53

Tu dois trouver sur ma chaine toutencamion xD la video

h2so4 Tu est un génie

oui en effet, l'ai remarqué l'erreur dont tu parle, souvent quand le problème se pose, je met une valeur proche de la valeur voulu.

Je me permet de ne pas clôturer le sujet, car j'ai envie d'essayer de le faire avec Tsortie, je reviens vers toi si j'ai des questions

@h2so4,

Alors, pour lancer le solveur en feuille "vide" sans les température d'entrée et de sortie de chaque échangeur.

J'ai fait comme dans l'excel ci-joint

Malheureusement, il y des notion que je ne métrise pas:

- ce que tu appel:

Else Cells(i, 1) = Cells(i - 1, "M") 'initialisation de la température d'entrée

- tout les "MaxMinVal" "ValueOf" "By change" "Engine" "Relation"

. tu pourrais me conseiller une video, qui serais adapter a ce que tu a fait?

bonsoir,

Cells(i, 1) = Cells(i - 1, "M")

mettre en ligne i, colonne 1(ou A) le contenu de la colonne M de la ligne précédente (i-1)

"MaxMinVal" "ValueOf" "By change" "Engine" "Relation"

maxminval : permet d'indiquer le type de solution que l'on cherche (maximum =1, minimum=2, valeur bien précise=3)

valueof : si paramètre précédent est à 3, valueof précise la valeur précise que l'on cherche à obtenir

Bychange : cellule(s) à faire varier pour la recherche d'une solution

Engine : type d'algorithme de recherche d'une solution (1 pour GRG non linéaire, 2 pour simplex, 3 pour génétique)

relation : paramètre pour une contrainte ,1<=,2=,3=>,4 entier,5 binaire (0 ou 1), 6 valeurs entières toutes différentes.

Je te dis encore merci,

je souhaite déplacer le code vers un autre ficher, disposant la même cas, même placement des colonnes des ligne ...

Il meme mettent une erreur sub

une idéé ?

microsoft visual basic pour applications perf echangeur sans elec 4 xlsm 07 02 2021 18 42 05

Bonsoir,

comme indiqué plus haut, ce code nécessite de faire référence au Solver (editeur vba, menu, outils, références, sélectionner Solver)

Rechercher des sujets similaires à "utilisation solveur meme feuille"