VBA automatisation du solveur ne fonctionne pas
Résolu
Gregooz
-
Gregooz -
Gregooz -
Bonjour,
Je cherche à créer un programme pour automatiser le solveur. Mais mon programme ne fonctionne pas. Il affiche une erreur de nom quand j'attribue une formule à une cellule. Et les contraintes du solveur ne s'applique pas.
Voici le lien du fichier
https://transfernow.net/21d884s0lsdf
ps : les erreurs se trouvent au niveau du calcul de f2
Je cherche à créer un programme pour automatiser le solveur. Mais mon programme ne fonctionne pas. Il affiche une erreur de nom quand j'attribue une formule à une cellule. Et les contraintes du solveur ne s'applique pas.
Voici le lien du fichier
https://transfernow.net/21d884s0lsdf
ps : les erreurs se trouvent au niveau du calcul de f2
A voir également:
- Pourquoi solver ne fonctionne pas
- Excel compter cellule couleur sans vba - Guide
- Logiciel automatisation mac - Guide
- Dépassement de capacité vba ✓ - Forum Excel
- Find vba - Astuces et Solutions
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
1 réponse
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour, merci de partager le texte exact du message d'erreur, et d'expliquer sous quelle forme il est affiché. comment faire pour reproduire le problème avec ton fichier?
Sheets("Caché").Range("A19").FormulaR1C1 = "F2" Sheets("Caché").Range("A20").FormulaR1C1 = "n*" Sheets("Caché").Range("A21").FormulaR1C1 = "K*(n*)" Sheets("Caché").Range("A22").FormulaR1C1 = "T" Sheets("Caché").Range("A23").FormulaR1C1 = "Variable contrainte 1" Sheets("Caché").Range("A24").FormulaR1C1 = "Variable contrainte 2" 'Sheets("Caché").Range("B19").FormulaR1C1 = f2 Sheets("Caché").Range("B20").FormulaR1C1 = netoile Sheets("Caché").Range("B21").FormulaR1C1 = k Sheets("Caché").Range("B22").FormulaR1C1 = t 'Sheets("Caché").Range("B23").FormulaR1C1 = solveur1 'Sheets("Caché").Range("B24").FormulaR1C1 = solveur2 Sheets("Caché").Range("B19").Formula = "=(($B$2*$B$8)/($B$20*$B$21*$B$16))+($B$20-1)*$B$21*$B$16*($B$14/2)+$B$4*$B$2*$B$22*$B$10" Sheets("Caché").Range("B23").Formula = "=(($B$2*$B$9)/($B$21*$B$16))+($B$21*$B$16*$B$15)/2-(RACINE(2*$B$2*$B$9*$B$15))" Sheets("Caché").Range("B24").Formula = "=$B$4*$B$2*$B$22*$B$11" SolverReset SolverOk SetCell:="$B$19", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$20:$B$22", Engine:=1, EngineDesc:="GRG Nonlinear" SolverAdd CellRef:="$B$23", Relation:=1, FormulaText:="$B$24" SolverAdd CellRef:="$B$20", Relation:=3, FormulaText:="1" SolverAdd CellRef:="$B$20", Relation:=4, FormulaText:="entier" SolverAdd CellRef:="$B$21", Relation:=3, FormulaText:="1" SolverAdd CellRef:="$B$21", Relation:=4, FormulaText:="entier" SolverAdd CellRef:="$B$22", Relation:=3, FormulaText:="1e-18" SolverSolve Userfinish:=True SolverReset f2 = Sheets("Caché").Range("B19").ValueEn fait l'erreur intervient dans la cellule de l'excel, il m'affiche #NOM à la cellule B23.
Je sais que ça veut dire que la formule est mal écrite mais je n'arrive pas à trouver l'erreur.
Je pense que si vous lancez le programme ça vous affichera pareille.
Sheets("Caché").Range("B23").Formula = "=(($B$2*$B$9)/($B$21*$B$16))+($B$21*$B$16*$B$15)/2-(RACINE(2*$B$2*$B$9*$B$15))"cela ne fonctionnera que dans un Excel en français: peut-être préférable de mettre tes formules en anglais en VBA.
tu peux aussi faire exposant un demi.