tjs prb fonction perso....

Le
Michel
Re-bonjour.. c'est encore moi..

La fonction suivante me renvoit une erreur de type #VALEUR!
-
Function MaFonction(Tata As Range)
Dim res_1 As Integer
res_1= Evaluate("=SUM( " & Tata & " )")
MaFonction = res_1
End Function
--
Je comprends pas pourquoi
(dans ma feuille de calcul, la plage de cellules correspondant à la
référence "Tata" de MaFonction contient des données)


Par contre, si dans ma feuille je nomme ma plage de cellule "bidon",
alors la fonction suivante fonctionne
Function MaFonction2(Tata As Range)
Dim res_1 As Integer
res_1= Evaluate("=SUM( bidon )")
MaFonction = res_1
End Function

mais bien sur le résultat est la somme de "bidon" et n'a donc rien à
voir si je fait référence à une autre plage de cellules..

Ca me semble tout con comme question, mais je bloque


Merci d'avance et bon week end !!

Michel
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Nicolas B.
Le #1250509
Salut,

C'est plus simple de passer par WorksheetFunction :
Function MaFonction(Plage As Range)
MaFonction = WorksheetFunction.Sum(Plage)
End Function


A+
--
Nicolas B.


Re-bonjour..... c'est encore moi.....

La fonction suivante me renvoit une erreur de type #VALEUR!
----------------------------------------
Function MaFonction(Tata As Range)
Dim res_1 As Integer
res_1= Evaluate("=SUM( " & Tata & " )")
MaFonction = res_1
End Function
-----------------------------------------
Je comprends pas pourquoi
(dans ma feuille de calcul, la plage de cellules correspondant à la
référence "Tata" de MaFonction contient des données)


Par contre, si dans ma feuille je nomme ma plage de cellule "bidon",
alors la fonction suivante fonctionne
Function MaFonction2(Tata As Range)
Dim res_1 As Integer
res_1= Evaluate("=SUM( bidon )")
MaFonction = res_1
End Function

mais bien sur le résultat est la somme de "bidon" et n'a donc rien à
voir si je fait référence à une autre plage de cellules.....

Ca me semble tout con comme question, mais je bloque ......


Merci d'avance et bon week end !!

Michel


Michel
Le #1250316
Oui en effet pour un calcul aussi simple c'est vrai....

Mon problème c'est que la fonction que je veux faire doit renplacer
cette formule :

=LOI.NORMALE.INVERSE(1-((1-(95/100))/2);0;RACINE(SOMME.XMY2(mat_mortes;
(SOMME(mat_mortes)/SOMME(mat_effectif))*(mat_effectif))/((MOYENNE(mat_effectif)^2)*NB(mat_mortes)*(NB(mat_mortes)-1))))

pour permettre d'entrer à la place un truc style :
=MAFONCTION(mat_mortes;mat_effectif)

et là ca devient franchement compliqué.....

Merci qd meme :o)

Michel



Nicolas B. a écrit:

Salut,

C'est plus simple de passer par WorksheetFunction :
Function MaFonction(Plage As Range)
MaFonction = WorksheetFunction.Sum(Plage)
End Function


A+




Nicolas B.
Le #1250311
Pour l'exemple avec Somme :
Function MaFonction(Plage As Range)
MaFonction = Evaluate("=Sum(" & Plage.Address & ")")
End Function

Et pour ta fonction, ça devrait être :
Function MaFonction2(mat_mortes As Range, mat_effectif As Range)
MaFonction2 = Evaluate("=NORMINV(0.975,0,SQRT(SUMXMY2(" & mat_mortes.Address
_
& ",(SUM(" & mat_mortes.Address & ")/SUM(" & mat_effectif.Address & "))*(" _
& mat_effectif.Address & "))/((AVERAGE(" & mat_effectif.Address & _
")^2)*COUNT(" & mat_mortes.Address & ")*(COUNT(" & mat_mortes.Address _
& ")-1))))")
End Function


A+
--
Nicolas B.


Oui en effet pour un calcul aussi simple c'est vrai....

Mon problème c'est que la fonction que je veux faire doit renplacer
cette formule :

=LOI.NORMALE.INVERSE(1-((1-(95/100))/2);0;RACINE(SOMME.XMY2(mat_mortes;

(SOMME(mat_mortes)/SOMME(mat_effectif))*(mat_effectif))/((MOYENNE(mat_effect

if)^2)*NB(mat_mortes)*(NB(mat_mortes)-1))))

pour permettre d'entrer à la place un truc style :
=MAFONCTION(mat_mortes;mat_effectif)

et là ca devient franchement compliqué.....

Merci qd meme :o)

Michel



Nicolas B. a écrit:

Salut,

C'est plus simple de passer par WorksheetFunction :
Function MaFonction(Plage As Range)
MaFonction = WorksheetFunction.Sum(Plage)
End Function


A+




michel
Le #1272172
Ce fut un peu plus délicat que tu ne le proposais, mais je suis parvenu
à mes fins.....
Un tres grand merci à toi !!!!!

Michel



Nicolas B. a écrit:
Pour l'exemple avec Somme :
Function MaFonction(Plage As Range)
MaFonction = Evaluate("=Sum(" & Plage.Address & ")")
End Function

Et pour ta fonction, ça devrait être :
Function MaFonction2(mat_mortes As Range, mat_effectif As Range)
MaFonction2 = Evaluate("=NORMINV(0.975,0,SQRT(SUMXMY2(" & mat_mortes.Address
_
& ",(SUM(" & mat_mortes.Address & ")/SUM(" & mat_effectif.Address & "))*(" _
& mat_effectif.Address & "))/((AVERAGE(" & mat_effectif.Address & _
")^2)*COUNT(" & mat_mortes.Address & ")*(COUNT(" & mat_mortes.Address _
& ")-1))))")
End Function


A+


Publicité
Poster une réponse
Anonyme