Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

tjs prb fonction perso....

4 réponses
Avatar
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

4 réponses

Avatar
Nicolas B.
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


Avatar
Michel
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+




Avatar
Nicolas B.
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+




Avatar
michel
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+