OVH Cloud OVH Cloud

Fonction en VBA

9 réponses
Avatar
Patrick Fredin
Bonjour,

J'aimerais créer une fonction en VBA. Cette fonction doit renvoyer la valeur
d'une cellule n lignes plus haut que la cellule où se trouve la formule.

Comment puis-je faire pour que la formule trouve elle-même où elle est
utilisée ? Par exemple, si elle est dans la cellule A10, il faudrait qu'au
début de la formule, elle soit capable de détecter qu'elle est en A10.

Merci pour votre aide.

Patrick

9 réponses

Avatar
Ardus Petus
Normalement, tu n'as pas besoin de fonction VBA.

Si tu rentres ±0 dans la cellule B20, tu as automatiquement le résultat
attendu.

Cordialement,
--
AP

"Patrick Fredin" a écrit dans le message
de news:
Bonjour,

J'aimerais créer une fonction en VBA. Cette fonction doit renvoyer la
valeur

d'une cellule n lignes plus haut que la cellule où se trouve la formule.

Comment puis-je faire pour que la formule trouve elle-même où elle est
utilisée ? Par exemple, si elle est dans la cellule A10, il faudrait qu'au
début de la formule, elle soit capable de détecter qu'elle est en A10.

Merci pour votre aide.

Patrick


Avatar
Clément Marcotte
Bonjour,

Pour l'adresse de la cellule sélectionnée:

ladresse = activecell.address

Le numéro de ligne:

laligne = activecell.row

Le numéro de colonne:

Lacolonne = activecell.column

"Patrick Fredin" a écrit dans le message
de news:
Bonjour,

J'aimerais créer une fonction en VBA. Cette fonction doit renvoyer la
valeur
d'une cellule n lignes plus haut que la cellule où se trouve la formule.

Comment puis-je faire pour que la formule trouve elle-même où elle est
utilisée ? Par exemple, si elle est dans la cellule A10, il faudrait qu'au
début de la formule, elle soit capable de détecter qu'elle est en A10.

Merci pour votre aide.

Patrick


Avatar
Patrick Fredin
Merci beaucoup !!!

Bon, je vais donner plus de détails pour éviter qu'on me prenne pour un gros
nul.

Le truc c'est que j'ai une série de tableaux, les uns en dessous des autres.
Chaque tableau commence par une ligne de valeur. Ensuite, les lignes en
dessous utilisent cette valeur qu'elles multiplient par un pourcentage qui se
trouve dans la 1e colonne.

Comme j'ai plusieurs tableaux, la ligne où se trouve la valeur de référence
change et je veux utiliser la même formule partout. Et je peux la ligne de
référence avec la méthode End(xlUp).

Pour le moment, j'utilise un argument dans la fonction qui est la cellule où
se trouve la formule. Donc, dans chaque formule, il y a "GrossAmount(RC)".
J'aimerais bien me débarrasser de cet argument.

Encore merci.


--
Patrick


"Ardus Petus" wrote:

Normalement, tu n'as pas besoin de fonction VBA.

Si tu rentres ±0 dans la cellule B20, tu as automatiquement le résultat
attendu.

Cordialement,
--
AP

"Patrick Fredin" a écrit dans le message
de news:
Bonjour,

J'aimerais créer une fonction en VBA. Cette fonction doit renvoyer la
valeur

d'une cellule n lignes plus haut que la cellule où se trouve la formule.

Comment puis-je faire pour que la formule trouve elle-même où elle est
utilisée ? Par exemple, si elle est dans la cellule A10, il faudrait qu'au
début de la formule, elle soit capable de détecter qu'elle est en A10.

Merci pour votre aide.

Patrick




Avatar
Patrick Fredin
Bonjour Clément,

Merci pour ta réponse. Mais cela ne convient pas parce que c'est une
fonction de calcul que je mets une cellule et ActiveCell est la cellule où se
trouve le curseur. Dans ce cas, la fonction se réfère à la cellule active et
non la cellule où se trouve la fonction.

En fait, je ne sais s'il y a une solution à mon problème.

Encore merci.

--
Patrick


"Clément Marcotte" wrote:

Bonjour,

Pour l'adresse de la cellule sélectionnée:

ladresse = activecell.address

Le numéro de ligne:

laligne = activecell.row

Le numéro de colonne:

Lacolonne = activecell.column

"Patrick Fredin" a écrit dans le message
de news:
Bonjour,

J'aimerais créer une fonction en VBA. Cette fonction doit renvoyer la
valeur
d'une cellule n lignes plus haut que la cellule où se trouve la formule.

Comment puis-je faire pour que la formule trouve elle-même où elle est
utilisée ? Par exemple, si elle est dans la cellule A10, il faudrait qu'au
début de la formule, elle soit capable de détecter qu'elle est en A10.

Merci pour votre aide.

Patrick







Avatar
Clément Marcotte
se trouve la formule. Donc, dans chaque formule, il y a "GrossAmount(RC)".


Ils travaillent pas en français chez Meloche-Monnex ?

Ou bedon, il se prennent pour des Français ?

Avatar
JpPradier
Bonjour Patrick

Essaye avec :

Application.Caller.Address

j-p
Avatar
Patrick Fredin
Je ne vois pas le rapport avec la question de départ !

Ceci dit, on peut utiliser la méthode suivante pour récupérer l'adresse de
la cellule où se trouve la formule :

Application.Caller.Address


--
Patrick


"Clément Marcotte" wrote:

se trouve la formule. Donc, dans chaque formule, il y a "GrossAmount(RC)".


Ils travaillent pas en français chez Meloche-Monnex ?

Ou bedon, il se prennent pour des Français ?




Avatar
Clément Marcotte
Pis le "GrossAmount(RC)", lui ? Au Québec la langue officielle c'est le
français, pas le tête carrée. Les têtes carrées qui veulent travailler au
Québec, n'ont qu'à apprendre le français.
Avatar
Ange Ounis
J'aimerais créer une fonction en VBA. Cette fonction doit renvoyer la valeur
d'une cellule n lignes plus haut que la cellule où se trouve la formule.


Pour la valeur de la cellule située une ligne plus haut que celle où la fonction
est écrite :

Function ValeurCellAuDessus()
Dim nbLignesAuDessus As Long
Application.Volatile
nbLignesAuDessus = 1
If Application.Caller.Row <= nbLignesAuDessus Then
ValeurCellAuDessus = CVErr(xlErrRef)
Else
ValeurCellAuDessus = _
Application.Caller.Offset(-nbLignesAuDessus, 0).Value
End If
End Function

et, en A10 par exemple :

=ValeurCellAuDessus()

----------
Ange Ounis
----------

Bonjour,

J'aimerais créer une fonction en VBA. Cette fonction doit renvoyer la valeur
d'une cellule n lignes plus haut que la cellule où se trouve la formule.

Comment puis-je faire pour que la formule trouve elle-même où elle est
utilisée ? Par exemple, si elle est dans la cellule A10, il faudrait qu'au
début de la formule, elle soit capable de détecter qu'elle est en A10.

Merci pour votre aide.

Patrick