JoelMath
Messages postés3Date d'inscriptionmardi 8 septembre 2009StatutMembreDernière intervention10 septembre 2009
-
8 sept. 2009 à 17:41
JoelMath
Messages postés3Date d'inscriptionmardi 8 septembre 2009StatutMembreDernière intervention10 septembre 2009
-
10 sept. 2009 à 15:46
Bonjour,
Je suis en train d'écrire une fonction qui utilise comme entrée les 30 cellules précédentes dans la colone adjacente.
J'allais utiliser «offset» pour dire à la fonction de prendre les valeurs voulues, mais je n'arrive pas à déterminer l'adresse de la cellule dans laquelle j'écris la fonction. Tout ce que j'obtiens est la valeur de la cellule active qui change aussitôt que je déplace mon curseur!
Par exemple, pour aller chercher la première valeur
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 8 sept. 2009 à 18:25
Salut
Pas clair.
"cellule dans laquelle est écrite la fonction" : Une fonction n'appartient pas à une cellule mais à une feuille ou un module, enfin tout dépend où tu l'as mise, on n'a aucune précision à ce sujet, difficile de te répondre.
Colle ici la déclaration de ta procédure et dis nous ce qui déclenche cette procédure (un appel extérieur ...)
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
JoelMath
Messages postés3Date d'inscriptionmardi 8 septembre 2009StatutMembreDernière intervention10 septembre 2009 8 sept. 2009 à 19:29
D'accord, je vais essayer de préciser mon problème.
Bon j'écris dans un module une fonction qui sera utilisée dans une cellule (en entrant la syntaxe ="Nomfonction"()) contenue dans une feuille quelcuonque.
Je souhaite que cette cellule renvoie une valeur qui est fonction des 30 cellules se trouvant dans les 30 lignes précédentes dans la colone adjacente.
Exemple:
j'utilise ma fonction à la cellule C31 en écrivant dans la cellule: =LaminMist()
Je voudrais que la cellule renvoie une fonction des valeurs contenues dans les cellules B1 à B30.
voici le code:
Function LaminMist()
Dim A(30) As Double
colone = 1
For i = 0 To 30
Lamin = Lamin + A(i) * ActiveCell.Offset(-i - 1, 1).Value
Next i
Lamin = LaminMist
End If
End Function
c'est à cette ligne que je voudrais remplacer «ActiveCell» par une propriété qui donnerait l'adresse de la cellule dans laquelle on utilise la fonction ( C31 pour l'exemple cité plus haut) .