solver dans macro | ||
---|---|---|
Inscription: 01/07/2008
Messages:
32
Système d'exploitation: PC Version Excel utilisée: 2003 |
Posté le : 10-07-2008 16h55
Bonjour Didier, bonjour le forum!
J'ai une question à vous poser. Mon souhait est d'intégrer le solver dans une macro pour que lorsque je clique sur un bouton le solver se lance automatiquement. J'ai dons fixer manuellement mes paramètres dans le solver par enregistrement pour avoir le code puis j'ai créé un bouton. Cependant lorsque je clique sur le bouton, le solver ne tourne pas et bute sur les premiers mots du code "solverok". Il apparait alors une fenêtre "erreur de compilation Sub ou fonction non définie" Le code est le suivant : Sub Macro1() SolverOk SetCell:="$C$17", MaxMinVal:=2, ValueOf:="0", ByChange:="$C$9:$C$16" |
|
|
Re: solver dans macro | ||
---|---|---|
Inscription: 01/07/2008
Messages:
32
Système d'exploitation: PC Version Excel utilisée: 2003 |
Posté le : 10-07-2008 18h44
Bonjour à tous!
Bon, j'ai résolu mon problème précédent. En fait il fallait que j'active le fichier SOLVER.XLA Le solveur fonctionne donc automatiquement quand j'appuie sur le bouton. Par contre, j'ai un autre problème. En fait le fichier va etre modifié et des données vont etre ajoutées. Il faut donc que je fasse en sorte que le solveur tourne même si on rajoute des données. Pour ce faire j'ai écrit ce code : Sub Macro2() SolverReset End Sub |
|
|
Re: solver dans macro | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 10-07-2008 19h56
Bonsoir lannou, le Forum,
Dans la ligne suivante par exemple : SolverOk SetCell:="$C$17", MaxMinVal:=2, ValueOf:="0", ByChange:="$C$9:$C$16" Pour ta nouvelle procédure, il convient donc d'écrire sous cette forme : SolverOk SetCell:=Range("C" & imax1 + 1).Address, MaxMinVal:=2, ValueOf:="0", ByChange:=Range("C9:C" & imax1).Address Ensuite, un conseil qu'il convient d'appliquer si tu souhaites progresser en VBA : toujours déclarer tes variables (lire l'article VBA et les variables). Par ailleurs lannou, je te remercie d'utiliser le bouton prévu pour l'insertion du code VBA dans les posts du Forum : Cordialement PS: ta BAL est encore pleine... Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: solver dans macro | ||
---|---|---|
Inscription: 01/07/2008
Messages:
32
Système d'exploitation: PC Version Excel utilisée: 2003 |
Posté le : 11-07-2008 10h34
Bonjour Didier, bonjour le forum!
Merci pour ta réponse ... et... ca marche!!!! Par contre, malgré ton explication je n'ai pas compris pourquoi il fallait rajouter ".adress". Tu dits que les arguments Cetsell et ByChange attendent une chaine de caractère. Mais en fait non ces cellules attendent un nombre! J'étais donc septique mais j'ai quand même faits les modifs et ca marche... Peux tu m'éclairer un peu plus s'il te plaît pour que la prochaine fois j'évite de faire la même erreur? Merci pour ton conseil pour déclarer les variables. J'essaierai de le faire même si j'ai l'impression que les déclarer n'influe pas trop sur le programme... J'ai refaits le ménage dans ma boite mail! Pour l'insertion de code, je ne savais pas que l'on pouvait faire comme ca, la prochaine fois je l'insererai correctement! Merci pour ton aide! ++ Lannou |
|
|
Re: solver dans macro | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 11-07-2008 23h46
Bonsoir lannou, le Forum,
Aucun problème pour tenter de te donner les explications. C'est, pour moi, l'objectif premier d'un forum de discussions... En fait, tout est question de vocabulaire et notamment de vocabulaire propre au langage VBA. Quand tu écris : Range("C" & imax1 + 1) Quand tu écris : "$C$17" Dans ta première macro, on voit la fonction suivante : SolverOk SetCell:="$C$17", MaxMinVal:=2, ValueOf:="0", ByChange:="$C$9:$C$16" Au final, je pense que tu as compris que la propriété Address d'un objet Range, fournit la chaine de caractères souhaitée. Concernant les variables, je te confirme que la déclaration n'est pas obligatoire dans VBA. Tu peux très bien faire une application complète sans déclarer la moindre variable. Cela dit, par expérience, je peux t'affirmer que prendre l'habitude de le faire t'évitera bien des situations inattendues plus tard et t'apprendra à maitriser tes développements. Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: solver dans macro | ||
---|---|---|
Inscription: 01/07/2008
Messages:
32
Système d'exploitation: PC Version Excel utilisée: 2003 |
Posté le : 12-07-2008 17h52
Bonjour tout le monde!
Ok je pige mieux! Merci pour ces explications!!! Ca marche je vais essayer de m'habituer à déclarer mes variables correctement! En tout cas mon problème est résolu donc je met le sujet en "résolu"! Merciiiiiiiiiiiii!! Bon week end à tous ++ |
|
|