Vba solveur excel

kenn Messages postés 1 Statut Membre -  
 cacahouette -
Bonjour,

Je souahite utiliser le solveur d'exel à partir DU VBA pour résoudre une équation du second degré .
Cependant, le solveur ne trouve qu'une seule solution , comment obtenir la deuxieme?
Puis, je souhaiterai enregistrer la solution trouvée: le solveur me demande si je veux garder la solution trouvee et replacer lancienne avec mais je veux selectionner cette solution trouvée par le solveur en la mettant dans une cellule tout en gardant lancienne solution, comment je pourrai faire?

Comment faire afficher la boite de solution du solveur dans une autre feuille d'excel?
j'écris :
Sheets("azert").Select ( azert est ma deuxieme feuille d'excel)

SolverOK SetCell:=Cells(1, 6), MaxMinVal:=0, ByChange:=Cells(3, 2)

SolverSolve UserFinish:=True

SolverFinish KeepFinal:=1

mais rien ne ce passe par contre si j'écris , tout en se placant sur la premiere feuille d'excel

SolverOK SetCell:=Cells(1, 6), MaxMinVal:=0, ByChange:=Cells(3, 2)

SolverSolve UserFinish:=True

SolverFinish KeepFinal:=1

la le solveur me trouve des solutions.

savez - vous pourquoi le solveur ne peut pas travailler sur la feuille nommé 'azert'?

Merci de m'aider.
A voir également:

1 réponse

Kobomishi
 
Bonjour,

Pour excel, il y a une grosse différence entre sheets("azert").select et sheets("azert").activate

le select te permet d'afficher cette feuille à l'écran et rien de plus
le activate définit la feuille dans laquelle tu travailles.
Autrement dit, si tu as la feuille "feuil1" affichée avant de lancer ta macro et que tu lances ton code, il 'select' la feuille "azert" mais pour lui, la feuille active est toujours "feuil1". donc quand tu tapes cells(1,6), il va chercher la valeur de la cellule (1,6) de la feuille "feuil1"... Et c'est surement là ou ça plante.

Personnellement, je n'utilise jamais les fonctions cells() ou range() toutes seules. Je définit toujours worksheets("nom de la feuille").cells() ou worksheets("nom de la feuille").range()

NOTE: tu peux avantageusement remplacer le "nom de la feuille" par son numéro

J'espère que ça t'aidera
0
cacahouette
 
Tu peux même carrément nommer la feuille....

Par exemple si tu donne comme nom (et pas comme caption à ta feuille le nom toto, il te suffit d'ecrire toto.cells();value
0