comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
bonjour ignacy,
il n'y a pas de problème sur xl2002
=Surface(INDIRECT(ADRESSE(LIGNE();COLONNE(Diametre))))
isabelle
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
bonjour ignacy,
il n'y a pas de problème sur xl2002
=Surface(INDIRECT(ADRESSE(LIGNE();COLONNE(Diametre))))
isabelle
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
bonjour ignacy,
il n'y a pas de problème sur xl2002
=Surface(INDIRECT(ADRESSE(LIGNE();COLONNE(Diametre))))
isabelle
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
Bonjour isabelle
bonjour à tous
Isabelle je suppose que tu utilises ma fonction tel que ci-dessous et
tu modifies les paramètres pour utiliser indirect etc...
Dans ce cas il y a plus simple :
=Surface(+Diametre) au lieu de =Surface(Diametre)
En fait ce qui m'interesse c'est de modifier la fonction pour passer
=Surface(Diametre)
Ce que je veux c'est que ma fonction se comporte comme n'importe
quelle fonction native d'excel (ou une fonction excel 4)
Je suppose
isabelle wrote in message news:...bonjour ignacy,
il n'y a pas de problème sur xl2002
=Surface(INDIRECT(ADRESSE(LIGNE();COLONNE(Diametre))))
isabelle
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
Bonjour isabelle
bonjour à tous
Isabelle je suppose que tu utilises ma fonction tel que ci-dessous et
tu modifies les paramètres pour utiliser indirect etc...
Dans ce cas il y a plus simple :
=Surface(+Diametre) au lieu de =Surface(Diametre)
En fait ce qui m'interesse c'est de modifier la fonction pour passer
=Surface(Diametre)
Ce que je veux c'est que ma fonction se comporte comme n'importe
quelle fonction native d'excel (ou une fonction excel 4)
Je suppose
isabelle <as.isabellevIE@videotron.ca> wrote in message news:<3FA7C9D2.4CD761BF@videotron.ca>...
bonjour ignacy,
il n'y a pas de problème sur xl2002
=Surface(INDIRECT(ADRESSE(LIGNE();COLONNE(Diametre))))
isabelle
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
Bonjour isabelle
bonjour à tous
Isabelle je suppose que tu utilises ma fonction tel que ci-dessous et
tu modifies les paramètres pour utiliser indirect etc...
Dans ce cas il y a plus simple :
=Surface(+Diametre) au lieu de =Surface(Diametre)
En fait ce qui m'interesse c'est de modifier la fonction pour passer
=Surface(Diametre)
Ce que je veux c'est que ma fonction se comporte comme n'importe
quelle fonction native d'excel (ou une fonction excel 4)
Je suppose
isabelle wrote in message news:...bonjour ignacy,
il n'y a pas de problème sur xl2002
=Surface(INDIRECT(ADRESSE(LIGNE();COLONNE(Diametre))))
isabelle
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
Bonsoir,
Les fonctions VBA dont le(s) paramètre(s) sont déclarés Variant (ou non typés ce
qui revient au même) fonctionnent de la même manière que les fonctions natives
d'Excel !..
Après avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le même résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du problème...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
Bonsoir,
Les fonctions VBA dont le(s) paramètre(s) sont déclarés Variant (ou non typés ce
qui revient au même) fonctionnent de la même manière que les fonctions natives
d'Excel !..
Après avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le même résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du problème...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
Bonsoir,
Les fonctions VBA dont le(s) paramètre(s) sont déclarés Variant (ou non typés ce
qui revient au même) fonctionnent de la même manière que les fonctions natives
d'Excel !..
Après avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le même résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du problème...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
re bonjour ignacy,
dans le premier exemple j'avais supposé que c'était une colonne qui
était nommé Diametre,
et tu as raison =Surface(+Diametre) fonctionne bien aussi dans ce cas
(merci ! c'est une syntaxe que je ne connaissais pas)
pour que =Surface(Diametre) fonctionne dans les deux cas ( cellule
mommé ou une colonne mommé )
il fautdrait modifier comme ça :
Function Surface(Dia)
Surface = Application.Pi() * Cells(ActiveCell.Row, Dia.Column) ^ 2 / 4
End Function
isabelle
Bonjour isabelle
bonjour à tous
Isabelle je suppose que tu utilises ma fonction tel que ci-dessous et
tu modifies les paramètres pour utiliser indirect etc...
Dans ce cas il y a plus simple :
=Surface(+Diametre) au lieu de =Surface(Diametre)
En fait ce qui m'interesse c'est de modifier la fonction pour passer
=Surface(Diametre)
Ce que je veux c'est que ma fonction se comporte comme n'importe
quelle fonction native d'excel (ou une fonction excel 4)
Je suppose
isabelle wrote in message news:...bonjour ignacy,
il n'y a pas de problème sur xl2002
=Surface(INDIRECT(ADRESSE(LIGNE();COLONNE(Diametre))))
isabelle
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
re bonjour ignacy,
dans le premier exemple j'avais supposé que c'était une colonne qui
était nommé Diametre,
et tu as raison =Surface(+Diametre) fonctionne bien aussi dans ce cas
(merci ! c'est une syntaxe que je ne connaissais pas)
pour que =Surface(Diametre) fonctionne dans les deux cas ( cellule
mommé ou une colonne mommé )
il fautdrait modifier comme ça :
Function Surface(Dia)
Surface = Application.Pi() * Cells(ActiveCell.Row, Dia.Column) ^ 2 / 4
End Function
isabelle
Bonjour isabelle
bonjour à tous
Isabelle je suppose que tu utilises ma fonction tel que ci-dessous et
tu modifies les paramètres pour utiliser indirect etc...
Dans ce cas il y a plus simple :
=Surface(+Diametre) au lieu de =Surface(Diametre)
En fait ce qui m'interesse c'est de modifier la fonction pour passer
=Surface(Diametre)
Ce que je veux c'est que ma fonction se comporte comme n'importe
quelle fonction native d'excel (ou une fonction excel 4)
Je suppose
isabelle <as.isabellevIE@videotron.ca> wrote in message news:<3FA7C9D2.4CD761BF@videotron.ca>...
bonjour ignacy,
il n'y a pas de problème sur xl2002
=Surface(INDIRECT(ADRESSE(LIGNE();COLONNE(Diametre))))
isabelle
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
re bonjour ignacy,
dans le premier exemple j'avais supposé que c'était une colonne qui
était nommé Diametre,
et tu as raison =Surface(+Diametre) fonctionne bien aussi dans ce cas
(merci ! c'est une syntaxe que je ne connaissais pas)
pour que =Surface(Diametre) fonctionne dans les deux cas ( cellule
mommé ou une colonne mommé )
il fautdrait modifier comme ça :
Function Surface(Dia)
Surface = Application.Pi() * Cells(ActiveCell.Row, Dia.Column) ^ 2 / 4
End Function
isabelle
Bonjour isabelle
bonjour à tous
Isabelle je suppose que tu utilises ma fonction tel que ci-dessous et
tu modifies les paramètres pour utiliser indirect etc...
Dans ce cas il y a plus simple :
=Surface(+Diametre) au lieu de =Surface(Diametre)
En fait ce qui m'interesse c'est de modifier la fonction pour passer
=Surface(Diametre)
Ce que je veux c'est que ma fonction se comporte comme n'importe
quelle fonction native d'excel (ou une fonction excel 4)
Je suppose
isabelle wrote in message news:...bonjour ignacy,
il n'y a pas de problème sur xl2002
=Surface(INDIRECT(ADRESSE(LIGNE();COLONNE(Diametre))))
isabelle
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
bonjour Frédéric,
refait le test en nommant la colonne A "Diametre"
isabelle
Bonsoir,
Les fonctions VBA dont le(s) paramètre(s) sont déclarés Variant (ou non typés ce
qui revient au même) fonctionnent de la même manière que les fonctions natives
d'Excel !..
Après avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le même résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du problème...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
bonjour Frédéric,
refait le test en nommant la colonne A "Diametre"
isabelle
Bonsoir,
Les fonctions VBA dont le(s) paramètre(s) sont déclarés Variant (ou non typés ce
qui revient au même) fonctionnent de la même manière que les fonctions natives
d'Excel !..
Après avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le même résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du problème...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
bonjour Frédéric,
refait le test en nommant la colonne A "Diametre"
isabelle
Bonsoir,
Les fonctions VBA dont le(s) paramètre(s) sont déclarés Variant (ou non typés ce
qui revient au même) fonctionnent de la même manière que les fonctions natives
d'Excel !..
Après avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le même résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du problème...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
OK,
TypeOf (dans la solution d'"ignacy") n'étant apparu, il me semble, qu'avec Excel
2000, il y a peut-être aussi une piste avec TypeName :
Function Surface(Dia)
If TypeName(Dia) = "Range" Then _
tmp = Dia.Range("A1").Value Else tmp = Dia
Surface = Application.Pi() * tmp ^ 2 / 4
End Function
Une colonne (nommée ou non) ou une plage quelconque passée en argument ne va pas
provoquer d'erreur dans ce cas, seule la valeur de la cellule de son coin
supérieur gauche étant retenue dans le calcul.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
bonjour Frédéric,
refait le test en nommant la colonne A "Diametre"
isabelle
Bonsoir,
Les fonctions VBA dont le(s) paramètre(s) sont déclarés Variant (ou non typés ce
qui revient au même) fonctionnent de la même manière que les fonctions natives
d'Excel !..
Après avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le même résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du problème...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
OK,
TypeOf (dans la solution d'"ignacy") n'étant apparu, il me semble, qu'avec Excel
2000, il y a peut-être aussi une piste avec TypeName :
Function Surface(Dia)
If TypeName(Dia) = "Range" Then _
tmp = Dia.Range("A1").Value Else tmp = Dia
Surface = Application.Pi() * tmp ^ 2 / 4
End Function
Une colonne (nommée ou non) ou une plage quelconque passée en argument ne va pas
provoquer d'erreur dans ce cas, seule la valeur de la cellule de son coin
supérieur gauche étant retenue dans le calcul.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
bonjour Frédéric,
refait le test en nommant la colonne A "Diametre"
isabelle
Bonsoir,
Les fonctions VBA dont le(s) paramètre(s) sont déclarés Variant (ou non typés ce
qui revient au même) fonctionnent de la même manière que les fonctions natives
d'Excel !..
Après avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le même résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du problème...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
OK,
TypeOf (dans la solution d'"ignacy") n'étant apparu, il me semble, qu'avec Excel
2000, il y a peut-être aussi une piste avec TypeName :
Function Surface(Dia)
If TypeName(Dia) = "Range" Then _
tmp = Dia.Range("A1").Value Else tmp = Dia
Surface = Application.Pi() * tmp ^ 2 / 4
End Function
Une colonne (nommée ou non) ou une plage quelconque passée en argument ne va pas
provoquer d'erreur dans ce cas, seule la valeur de la cellule de son coin
supérieur gauche étant retenue dans le calcul.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
bonjour Frédéric,
refait le test en nommant la colonne A "Diametre"
isabelle
Bonsoir,
Les fonctions VBA dont le(s) paramètre(s) sont déclarés Variant (ou non typés ce
qui revient au même) fonctionnent de la même manière que les fonctions natives
d'Excel !..
Après avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le même résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du problème...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
salut Fréféric,
et comme ça, ça fonctionne pour les deux cas
Function Surface(Dia)
Surface = Application.Pi() * Cells(ActiveCell.Row, Dia.Column) ^ 2 / 4
End Function
isabelle
OK,
TypeOf (dans la solution d'"ignacy") n'étant apparu, il me semble, qu'avec Excel
2000, il y a peut-?tre aussi une piste avec TypeName :
Function Surface(Dia)
If TypeName(Dia) = "Range" Then _
tmp = Dia.Range("A1").Value Else tmp = Dia
Surface = Application.Pi() * tmp ^ 2 / 4
End Function
Une colonne (nommée ou non) ou une plage quelconque passée en argument ne va pas
provoquer d'erreur dans ce cas, seule la valeur de la cellule de son coin
supérieur gauche étant retenue dans le calcul.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
bonjour Frédéric,
refait le test en nommant la colonne A "Diametre"
isabelle
Bonsoir,
Les fonctions VBA dont le(s) param?tre(s) sont déclarés Variant (ou non typés ce
qui revient au m?me) fonctionnent de la m?me mani?re que les fonctions natives
d'Excel !..
Apr?s avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le m?me résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du probl?me...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche ? calculer cette fonction ? l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
salut Fréféric,
et comme ça, ça fonctionne pour les deux cas
Function Surface(Dia)
Surface = Application.Pi() * Cells(ActiveCell.Row, Dia.Column) ^ 2 / 4
End Function
isabelle
OK,
TypeOf (dans la solution d'"ignacy") n'étant apparu, il me semble, qu'avec Excel
2000, il y a peut-?tre aussi une piste avec TypeName :
Function Surface(Dia)
If TypeName(Dia) = "Range" Then _
tmp = Dia.Range("A1").Value Else tmp = Dia
Surface = Application.Pi() * tmp ^ 2 / 4
End Function
Une colonne (nommée ou non) ou une plage quelconque passée en argument ne va pas
provoquer d'erreur dans ce cas, seule la valeur de la cellule de son coin
supérieur gauche étant retenue dans le calcul.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
bonjour Frédéric,
refait le test en nommant la colonne A "Diametre"
isabelle
Bonsoir,
Les fonctions VBA dont le(s) param?tre(s) sont déclarés Variant (ou non typés ce
qui revient au m?me) fonctionnent de la m?me mani?re que les fonctions natives
d'Excel !..
Apr?s avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le m?me résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du probl?me...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche ? calculer cette fonction ? l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
salut Fréféric,
et comme ça, ça fonctionne pour les deux cas
Function Surface(Dia)
Surface = Application.Pi() * Cells(ActiveCell.Row, Dia.Column) ^ 2 / 4
End Function
isabelle
OK,
TypeOf (dans la solution d'"ignacy") n'étant apparu, il me semble, qu'avec Excel
2000, il y a peut-?tre aussi une piste avec TypeName :
Function Surface(Dia)
If TypeName(Dia) = "Range" Then _
tmp = Dia.Range("A1").Value Else tmp = Dia
Surface = Application.Pi() * tmp ^ 2 / 4
End Function
Une colonne (nommée ou non) ou une plage quelconque passée en argument ne va pas
provoquer d'erreur dans ce cas, seule la valeur de la cellule de son coin
supérieur gauche étant retenue dans le calcul.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
bonjour Frédéric,
refait le test en nommant la colonne A "Diametre"
isabelle
Bonsoir,
Les fonctions VBA dont le(s) param?tre(s) sont déclarés Variant (ou non typés ce
qui revient au m?me) fonctionnent de la m?me mani?re que les fonctions natives
d'Excel !..
Apr?s avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le m?me résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du probl?me...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche ? calculer cette fonction ? l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
OK,
TypeOf (dans la solution d'"ignacy") n'étant apparu, il me semble, qu'avec Excel
2000, il y a peut-être aussi une piste avec TypeName :
Function Surface(Dia)
If TypeName(Dia) = "Range" Then _
tmp = Dia.Range("A1").Value Else tmp = Dia
Surface = Application.Pi() * tmp ^ 2 / 4
End Function
Une colonne (nommée ou non) ou une plage quelconque passée en argument ne va pas
provoquer d'erreur dans ce cas, seule la valeur de la cellule de son coin
supérieur gauche étant retenue dans le calcul.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
bonjour Frédéric,
refait le test en nommant la colonne A "Diametre"
isabelle
Bonsoir,
Les fonctions VBA dont le(s) paramètre(s) sont déclarés Variant (ou non typés ce
qui revient au même) fonctionnent de la même manière que les fonctions natives
d'Excel !..
Après avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le même résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du problème...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
OK,
TypeOf (dans la solution d'"ignacy") n'étant apparu, il me semble, qu'avec Excel
2000, il y a peut-être aussi une piste avec TypeName :
Function Surface(Dia)
If TypeName(Dia) = "Range" Then _
tmp = Dia.Range("A1").Value Else tmp = Dia
Surface = Application.Pi() * tmp ^ 2 / 4
End Function
Une colonne (nommée ou non) ou une plage quelconque passée en argument ne va pas
provoquer d'erreur dans ce cas, seule la valeur de la cellule de son coin
supérieur gauche étant retenue dans le calcul.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
bonjour Frédéric,
refait le test en nommant la colonne A "Diametre"
isabelle
Bonsoir,
Les fonctions VBA dont le(s) paramètre(s) sont déclarés Variant (ou non typés ce
qui revient au même) fonctionnent de la même manière que les fonctions natives
d'Excel !..
Après avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le même résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du problème...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument
OK,
TypeOf (dans la solution d'"ignacy") n'étant apparu, il me semble, qu'avec Excel
2000, il y a peut-être aussi une piste avec TypeName :
Function Surface(Dia)
If TypeName(Dia) = "Range" Then _
tmp = Dia.Range("A1").Value Else tmp = Dia
Surface = Application.Pi() * tmp ^ 2 / 4
End Function
Une colonne (nommée ou non) ou une plage quelconque passée en argument ne va pas
provoquer d'erreur dans ce cas, seule la valeur de la cellule de son coin
supérieur gauche étant retenue dans le calcul.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
bonjour Frédéric,
refait le test en nommant la colonne A "Diametre"
isabelle
Bonsoir,
Les fonctions VBA dont le(s) paramètre(s) sont déclarés Variant (ou non typés ce
qui revient au même) fonctionnent de la même manière que les fonctions natives
d'Excel !..
Après avoir recopié ta fonction dans un module standard d'un classeur, et, en
admettant que la cellule A1 soit nommée Diametre (InsertionNom etc), j'obtiens
le même résultat si j'écris en B1 :
=Surface(A1)
=Surface(Diametre)
ou, en VBA :
Sub test()
Diametre = 10
MsgBox Surface(Diametre)
Diametre = Range("Diametre").Value
MsgBox Surface(Diametre)
Diametre = Range("A1").Value
MsgBox Surface(Diametre)
End Sub
Quelque chose doit m'échapper dans les données du problème...
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
comment utiliser une fonction avec des arguments de nature variable?
A titre d'exemple voici la fonction qui calcule la surface d'un cercle
en fonction du diametre :
Function Surface(Dia)
Surface = Application.Pi() * Dia ^ 2 / 4
End Function
cette fonction marche si Dia est une cellule (ex : L12C7) mais ne
marche pas si Dia est le nom d'une colonne (ex : Diametre = nom de C7)
et que l'on cherche à calculer cette fonction à l'intersection de la
colonne Diametre et la ligne active
Je rappelle que les vieilles fonctions écrites en Excel4 ainsi que les
fonctions natives d'excel (comme SOMME ou autre) marchent parfaitement
quelquesoit la nature de l'argument