salut tout le monde
dite, j'ai un petit pb sur excel
j'ai fait un programme avec vba que voici:
Option Explicit
Public Function b(flow As Double, flow_loss As Double)
Dim n As Double
n =3D flow - flow_loss
b =3D n
Range("C30").Value =3D 7
End Function
puis dans la feuille excel,
dans la cellule B34 est ecrit : =3Db(5;3) il apparait #VALUE! au lieu
de -2
par contre, si j'enl=E8ve la ligne Range("C30").Value =3D 7 il
apparait le bon resultat : -2
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Le problème de ta fonction personnalisée est cette ligne de code : Range("C30").Value = 7
Une fonction est faite pour retourner une valeur dans la cellule qui contient la fonction. C'est d'ailleurs la principale différence entre une fonction et une procédure.
Si tu inhibe la ligne de code mentionnée, ta fonction devrait bien fonctionner.
a écrit dans le message de news:
salut tout le monde dite, j'ai un petit pb sur excel j'ai fait un programme avec vba que voici:
Option Explicit
Public Function b(flow As Double, flow_loss As Double)
Dim n As Double n = flow - flow_loss b = n Range("C30").Value = 7 End Function
puis dans la feuille excel, dans la cellule B34 est ecrit : =b(5;3) il apparait #VALUE! au lieu de -2 par contre, si j'enlève la ligne Range("C30").Value = 7 il apparait le bon resultat : -2
je ne comprend vraiment pas pourquoi
Le problème de ta fonction personnalisée est cette ligne de code :
Range("C30").Value = 7
Une fonction est faite pour retourner une valeur dans la cellule qui
contient la fonction. C'est d'ailleurs la principale différence entre
une fonction et une procédure.
Si tu inhibe la ligne de code mentionnée, ta fonction devrait bien fonctionner.
<maatthieu@gmail.com> a écrit dans le message de news:
1168454029.022349.121410@i39g2000hsf.googlegroups.com...
salut tout le monde
dite, j'ai un petit pb sur excel
j'ai fait un programme avec vba que voici:
Option Explicit
Public Function b(flow As Double, flow_loss As Double)
Dim n As Double
n = flow - flow_loss
b = n
Range("C30").Value = 7
End Function
puis dans la feuille excel,
dans la cellule B34 est ecrit : =b(5;3) il apparait #VALUE! au lieu
de -2
par contre, si j'enlève la ligne Range("C30").Value = 7 il
apparait le bon resultat : -2
Le problème de ta fonction personnalisée est cette ligne de code : Range("C30").Value = 7
Une fonction est faite pour retourner une valeur dans la cellule qui contient la fonction. C'est d'ailleurs la principale différence entre une fonction et une procédure.
Si tu inhibe la ligne de code mentionnée, ta fonction devrait bien fonctionner.
a écrit dans le message de news:
salut tout le monde dite, j'ai un petit pb sur excel j'ai fait un programme avec vba que voici:
Option Explicit
Public Function b(flow As Double, flow_loss As Double)
Dim n As Double n = flow - flow_loss b = n Range("C30").Value = 7 End Function
puis dans la feuille excel, dans la cellule B34 est ecrit : =b(5;3) il apparait #VALUE! au lieu de -2 par contre, si j'enlève la ligne Range("C30").Value = 7 il apparait le bon resultat : -2
je ne comprend vraiment pas pourquoi
maatthieu
oui, la fonction marche parfaitement sans cette ligne mais j'en ai besoin ! :) comment pourrais-je donner une valeur à une cellule quelconque sinon ?
je precise que la ligne range("C30").Value = 7 marche bien dans un Sub...
merci de ta reponse MichDenis
Le problème de ta fonction personnalisée est cette ligne de code : Range("C30").Value = 7
Une fonction est faite pour retourner une valeur dans la cellule qui contient la fonction. C'est d'ailleurs la principale différence entre une fonction et une procédure.
Si tu inhibe la ligne de code mentionnée, ta fonction devrait bien fonc tionner.
a écrit dans le message de news:
salut tout le monde dite, j'ai un petit pb sur excel j'ai fait un programme avec vba que voici:
Option Explicit
Public Function b(flow As Double, flow_loss As Double)
Dim n As Double n = flow - flow_loss b = n Range("C30").Value = 7 End Function
puis dans la feuille excel, dans la cellule B34 est ecrit : =b(5;3) il apparait #VALUE! au lieu de -2 par contre, si j'enlève la ligne Range("C30").Value = 7 il apparait le bon resultat : -2
je ne comprend vraiment pas pourquoi
oui, la fonction marche parfaitement sans cette ligne
mais j'en ai besoin ! :)
comment pourrais-je donner une valeur à une cellule quelconque sinon ?
je precise que la ligne range("C30").Value = 7 marche bien
dans un Sub...
merci de ta reponse MichDenis
Le problème de ta fonction personnalisée est cette ligne de code :
Range("C30").Value = 7
Une fonction est faite pour retourner une valeur dans la cellule qui
contient la fonction. C'est d'ailleurs la principale différence entre
une fonction et une procédure.
Si tu inhibe la ligne de code mentionnée, ta fonction devrait bien fonc tionner.
<maatthieu@gmail.com> a écrit dans le message de news:
1168454029.022349.121410@i39g2000hsf.googlegroups.com...
salut tout le monde
dite, j'ai un petit pb sur excel
j'ai fait un programme avec vba que voici:
Option Explicit
Public Function b(flow As Double, flow_loss As Double)
Dim n As Double
n = flow - flow_loss
b = n
Range("C30").Value = 7
End Function
puis dans la feuille excel,
dans la cellule B34 est ecrit : =b(5;3) il apparait #VALUE! au lieu
de -2
par contre, si j'enlève la ligne Range("C30").Value = 7 il
apparait le bon resultat : -2
oui, la fonction marche parfaitement sans cette ligne mais j'en ai besoin ! :) comment pourrais-je donner une valeur à une cellule quelconque sinon ?
je precise que la ligne range("C30").Value = 7 marche bien dans un Sub...
merci de ta reponse MichDenis
Le problème de ta fonction personnalisée est cette ligne de code : Range("C30").Value = 7
Une fonction est faite pour retourner une valeur dans la cellule qui contient la fonction. C'est d'ailleurs la principale différence entre une fonction et une procédure.
Si tu inhibe la ligne de code mentionnée, ta fonction devrait bien fonc tionner.
a écrit dans le message de news:
salut tout le monde dite, j'ai un petit pb sur excel j'ai fait un programme avec vba que voici:
Option Explicit
Public Function b(flow As Double, flow_loss As Double)
Dim n As Double n = flow - flow_loss b = n Range("C30").Value = 7 End Function
puis dans la feuille excel, dans la cellule B34 est ecrit : =b(5;3) il apparait #VALUE! au lieu de -2 par contre, si j'enlève la ligne Range("C30").Value = 7 il apparait le bon resultat : -2
je ne comprend vraiment pas pourquoi
maatthieu
oui je precise que la cellule C30 n'est pas la cellule qui contient la fonction b...
oui je precise que la cellule C30 n'est pas la cellule qui contient la
fonction b...
oui je precise que la cellule C30 n'est pas la cellule qui contient la fonction b...
MichDenis
Je réitère ce que je te disais, tu ne peux pas affecter une valeur directement à une cellule à partir d'une fonction à moins que cette cellule contienne la fonction.
a écrit dans le message de news:
oui je precise que la cellule C30 n'est pas la cellule qui contient la fonction b...
Je réitère ce que je te disais, tu ne peux pas affecter
une valeur directement à une cellule à partir d'une fonction
à moins que cette cellule contienne la fonction.
<maatthieu@gmail.com> a écrit dans le message de news:
1168456192.660068.309120@i56g2000hsf.googlegroups.com...
oui je precise que la cellule C30 n'est pas la cellule qui contient la
fonction b...
Je réitère ce que je te disais, tu ne peux pas affecter une valeur directement à une cellule à partir d'une fonction à moins que cette cellule contienne la fonction.
a écrit dans le message de news:
oui je precise que la cellule C30 n'est pas la cellule qui contient la fonction b...
Garette
Bonsoir,
Ce que t'explique MichDenis, c'est qu'une fonction est faite pour renvoyer un résultat dans la cellule où elle est saisie. Range("C30").Value = 7 est une ligne qui va mettre 7 dans la cellule C30, qui fait donc une action dans une autre cellule. Effectivement, ça fonctionne dans une Sub pas pas dans une Function. Il faut donc enlever cette ligne de ta Fonction.
Bonsoir,
Ce que t'explique MichDenis, c'est qu'une fonction est faite pour renvoyer
un résultat dans la cellule où elle est saisie.
Range("C30").Value = 7 est une ligne qui va mettre 7 dans la cellule C30,
qui fait donc une action dans une autre cellule.
Effectivement, ça fonctionne dans une Sub pas pas dans une Function.
Il faut donc enlever cette ligne de ta Fonction.
Ce que t'explique MichDenis, c'est qu'une fonction est faite pour renvoyer un résultat dans la cellule où elle est saisie. Range("C30").Value = 7 est une ligne qui va mettre 7 dans la cellule C30, qui fait donc une action dans une autre cellule. Effectivement, ça fonctionne dans une Sub pas pas dans une Function. Il faut donc enlever cette ligne de ta Fonction.
LSteph
Bonsoir Matthieu,
tu pourrais peut-être envisager d'une part une sub qui met 7 en C30 et par ailleurs utiliser une fonction pour le calcul souhaité.
Cordialement.
lSteph
salut tout le monde dite, j'ai un petit pb sur excel j'ai fait un programme avec vba que voici:
Option Explicit
Public Function b(flow As Double, flow_loss As Double)
Dim n As Double n = flow - flow_loss b = n Range("C30").Value = 7 End Function
puis dans la feuille excel, dans la cellule B34 est ecrit : =b(5;3) il apparait #VALUE! au lieu de -2 par contre, si j'enlève la ligne Range("C30").Value = 7 il apparait le bon resultat : -2
je ne comprend vraiment pas pourquoi
Bonsoir Matthieu,
tu pourrais peut-être envisager
d'une part une sub qui met 7 en C30 et par ailleurs
utiliser une fonction pour le calcul souhaité.
Cordialement.
lSteph
salut tout le monde
dite, j'ai un petit pb sur excel
j'ai fait un programme avec vba que voici:
Option Explicit
Public Function b(flow As Double, flow_loss As Double)
Dim n As Double
n = flow - flow_loss
b = n
Range("C30").Value = 7
End Function
puis dans la feuille excel,
dans la cellule B34 est ecrit : =b(5;3) il apparait #VALUE! au lieu
de -2
par contre, si j'enlève la ligne Range("C30").Value = 7 il
apparait le bon resultat : -2
tu pourrais peut-être envisager d'une part une sub qui met 7 en C30 et par ailleurs utiliser une fonction pour le calcul souhaité.
Cordialement.
lSteph
salut tout le monde dite, j'ai un petit pb sur excel j'ai fait un programme avec vba que voici:
Option Explicit
Public Function b(flow As Double, flow_loss As Double)
Dim n As Double n = flow - flow_loss b = n Range("C30").Value = 7 End Function
puis dans la feuille excel, dans la cellule B34 est ecrit : =b(5;3) il apparait #VALUE! au lieu de -2 par contre, si j'enlève la ligne Range("C30").Value = 7 il apparait le bon resultat : -2
je ne comprend vraiment pas pourquoi
maatthieu
bon ok :( mais comment faire alors ? voici mon programme simplifié :
dans ma feuille excel : A1 = 1 A2 = 1+A1 A3 = f(A2)
je dois faire une public function f:
do A3=1+A2 stocker la valeur de A3 dans A1 <----comment faire alors ?? loop until A3> 100 f= A3
je ne peux pas reecrir tout en vba car c'est trop long, il faut que je reutilise les calculs fait dans les cellules d'excel, que je le les importe dans vba, et que je reecrive certaines cellules...
ca fait tres plaisir d'etre aidé, merci à vous
Bonsoir Matthieu,
tu pourrais peut-être envisager d'une part une sub qui met 7 en C30 et par ailleurs utiliser une fonction pour le calcul souhaité.
Cordialement.
lSteph
salut tout le monde dite, j'ai un petit pb sur excel j'ai fait un programme avec vba que voici:
Option Explicit
Public Function b(flow As Double, flow_loss As Double)
Dim n As Double n = flow - flow_loss b = n Range("C30").Value = 7 End Function
puis dans la feuille excel, dans la cellule B34 est ecrit : =b(5;3) il apparait #VALUE! au lieu de -2 par contre, si j'enlève la ligne Range("C30").Value = 7 il apparait le bon resultat : -2
je ne comprend vraiment pas pourquoi
bon ok :(
mais comment faire alors ? voici mon programme simplifié :
dans ma feuille excel :
A1 = 1
A2 = 1+A1
A3 = f(A2)
je dois faire une public function f:
do
A3=1+A2
stocker la valeur de A3 dans A1 <----comment faire alors ??
loop until A3> 100
f= A3
je ne peux pas reecrir tout en vba car c'est trop long, il faut que je
reutilise les calculs fait dans les cellules d'excel, que je le les
importe dans vba, et que je reecrive certaines cellules...
ca fait tres plaisir d'etre aidé, merci à vous
Bonsoir Matthieu,
tu pourrais peut-être envisager
d'une part une sub qui met 7 en C30 et par ailleurs
utiliser une fonction pour le calcul souhaité.
Cordialement.
lSteph
salut tout le monde
dite, j'ai un petit pb sur excel
j'ai fait un programme avec vba que voici:
Option Explicit
Public Function b(flow As Double, flow_loss As Double)
Dim n As Double
n = flow - flow_loss
b = n
Range("C30").Value = 7
End Function
puis dans la feuille excel,
dans la cellule B34 est ecrit : =b(5;3) il apparait #VALUE! au lieu
de -2
par contre, si j'enlève la ligne Range("C30").Value = 7 il
apparait le bon resultat : -2
bon ok :( mais comment faire alors ? voici mon programme simplifié :
dans ma feuille excel : A1 = 1 A2 = 1+A1 A3 = f(A2)
je dois faire une public function f:
do A3=1+A2 stocker la valeur de A3 dans A1 <----comment faire alors ?? loop until A3> 100 f= A3
je ne peux pas reecrir tout en vba car c'est trop long, il faut que je reutilise les calculs fait dans les cellules d'excel, que je le les importe dans vba, et que je reecrive certaines cellules...
ca fait tres plaisir d'etre aidé, merci à vous
Bonsoir Matthieu,
tu pourrais peut-être envisager d'une part une sub qui met 7 en C30 et par ailleurs utiliser une fonction pour le calcul souhaité.
Cordialement.
lSteph
salut tout le monde dite, j'ai un petit pb sur excel j'ai fait un programme avec vba que voici:
Option Explicit
Public Function b(flow As Double, flow_loss As Double)
Dim n As Double n = flow - flow_loss b = n Range("C30").Value = 7 End Function
puis dans la feuille excel, dans la cellule B34 est ecrit : =b(5;3) il apparait #VALUE! au lieu de -2 par contre, si j'enlève la ligne Range("C30").Value = 7 il apparait le bon resultat : -2
je ne comprend vraiment pas pourquoi
MichDenis
Désolé, je ne comprends pas ce que fais ta fonction.
Si au lieu d'écrire ton code, tu nous expliquais la problématique que tu veux résoudre par ta fonction.
Désolé, je ne comprends pas ce que fais ta fonction.
Si au lieu d'écrire ton code, tu nous expliquais la problématique
que tu veux résoudre par ta fonction.