Rapport de message :*
 

Re: solver dans macro

Titre du sujet : Re: solver dans macro
par myDearFriend! le 11/07/2008 23:46:31

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)
... tu fais directement référence à l'objet Range (la cellule elle-même). Là, on ne fait pas référence à son adresse, ni à sa valeur, mais on fait directement référence à l'objet lui-même.

Quand tu écris :
"$C$17"
... tu écris une simple chaine de caractères. Certe, cette chaine représente l'adresse d'une cellule, mais il ne s'agit rien d'autre que d'une banale chaine de caractères.

Dans ta première macro, on voit la fonction suivante :
SolverOk SetCell:="$C$17", MaxMinVal:=2, ValueOf:="0", ByChange:="$C$9:$C$16"
Cette fonction reçoit quatre arguments dont deux sont nommés : SetCell et ByChange. Ces deux arguments attendent chacun, non pas une référence aux objets Range, mais une simple chaine de caractères représentant l'adresse de ces objets ("$C$17" et "$C$9:$C$16"). Il y a là une nuance qui a beaucoup d'importance.

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,