Vba solveur excel

Fermé
kenn Messages postés 1 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 25 octobre 2006 - 25 oct. 2006 à 23:58
 cacahouette - 21 juil. 2010 à 14:48
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

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
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