Codage VBA d'une loi student

Bonjour,

J'essaie en vain de coder une loi (LOI.STUDENT) dans une macro VBA.

Excel calcule la loi en question par l'utilisation de =LOI.STUDENT(x;Degré,Uni/Bilatéral)

En lançant l'enregistrement de macro, le résultat VBA de cette fonction est:

Range("J31").Select

ActiveCell.FormulaR1C1 = "=TDIST(RC[-1],R[-23]C[39]-1,1)"

Dans mon cas, je veux attribuer ce résultat à une variable déclarée Pourc_Inf, et ne pas intégrer la valeur des cases dans ma formule, mais des variables x, degré, Uni/Bilatéral par exemple:

Pourc_Inf = TDist(x, degré, 1) --> La compilation plante

J'ai trouvé la formulation suivante: Pourc_Inf = Application.TDist(x, degré, 1) --> La compilation se passe bien et me donne un résultat. Malheureusement, le résultat diffère du résultat Excel d'origine.

D'ou ma question, comment formuler proprement une loi.student dans une macro VBA en y associant directement des variables définies.

Par avance, merci

Salut,

Je n'ai aucune idée de ce qu'est la loi student et un exemple aurait été le bienvenu mais si j'ai bien compris, ta formule pourrait être la suivante :

Sub test()
Dim x As Double, degré As Double, Pourc_Inf As Double
x = 5
degré = 2

Pourc_Inf = Application.WorksheetFunction.TDist(x, degré, 1)

MsgBox Pourc_Inf

End Sub

Bonjour,

Tout d'abord, merci pour ton aide. En gros, la LOI.STUDENT sert à calculer une population distribuée normalement selon une moyenne et un écartype au delà d'un seuil défini.

J'ai testé ta syntaxe, ça ne marche pas non plus, ça me donne le même résultat que la syntaxe de départ.

Pour donner un exemple.

1) - Sous VBA

Dim x As Double, degré As Double, Pourc_Inf As Double

x = 6,95

degré = 44208

Pourc_Inf = Application.WorksheetFunction.TDist(x, degré-1, 1)

--> Le résultat est 2,79108E-07

2) - Sous excel

=LOI.STUDENT(x; degré-1;1)

--> Le résultat est 1,817E-12

Mon problème est de comprendre pourquoi le résultat n'est pas le même.

Bonjour,

chez moi le résultat de l'appel vba est bien le même que celui sous excel à savoir 1,817E-12

Bonjour,

Idem pour moi.

Cdlt

Option Explicit
Public Function Test(x As Double, dg As Double, _
    ub As Double) As Double

    Test = Application.TDist(x, dg - 1, ub)

End Function
38fonction-tdist.xlsm (15.37 Ko)

Merci pour votre aide.

En voyant vos réponses, je me suis dit que le problème devait venir d'une mauvaise attribution des variables de la fonction. Pas manqué, j'avais interverti ligne et colonne sur un appel de variable ce qui me donnait des résultats différents.

Du coup, ça marche au poil.

On peut donc bien coder LOI.STUDENT par application.TDist

Encore merci.

Julien

Rechercher des sujets similaires à "codage vba loi student"