Bonjour,
L'un d'entre vous tous saurait-il comment coder le test de Student en VBA sous Access 2010 ?
Merci d'avance à tous !! :zoubi:
Version imprimable
Bonjour,
L'un d'entre vous tous saurait-il comment coder le test de Student en VBA sous Access 2010 ?
Merci d'avance à tous !! :zoubi:
bonjour,
il existe la fonction test.student dans Excel.
Cela ne suffirait-il pas ? Je sais que tu demandes pour Access mais bon...
Curt
Bonjour,
À toutes fins utiles, voici un bout de code qui te permet d'utiliser les fonctions Excel en Access.L'intelliSense te permet de trouver le nom anglais des fonctions disponibles et les arguments utiles (dans ton cas,T_TEST, je crois).Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 Option Compare Database Option Explicit Sub utiliserExcel() ' Variables pour manipuler Excel Dim xlApp As Excel.Application, xlAppCreated As Boolean On Error GoTo ErrH ' Tente de récupérer une instance d'Excel déjà créée Set xlApp = GetObject(, "Excel.Application") ' Sinon, crée une nouvelle instance d'Excel If xlApp Is Nothing Then Set xlApp = CreateObject("Excel.Application") xlAppCreated = True End If Debug.Print Excel.WorksheetFunction.Min(2, 3, 7, 1) Debug.Print Excel.WorksheetFunction.Max(2, 3, 7, 1) Debug.Print Excel.WorksheetFunction.Average(2, 3, 7, 1) ' Fermer la session Excel, si on avait dû l'ouvrir If xlAppCreated = True And Not (xlApp Is Nothing) Then xlApp.Quit Set xlApp = Nothing Exit Sub ErrH: ' Gestion d'erreurs Select Case Err.Number Case 429 ' Ignorer Erreur causée par GetObject(, "Excel.Application") Resume Next Case Else MsgBox "Erreur N. " & Err.Number & " : " & Err.Description Exit Sub End Select End Sub
P.-S. Il faut ajouter la référence :
Microsoft Excel XX.X Object Library
Bonjour
Merci à tous les deux ! :P
Curt : je sais effectivement que la fonction existe sous Excel. Mais, à tout hasard, quelqu'un connaissait peut-être son pendant sous Access ^^.
ClaudeLELOUP : en copiant-collant ton bout de code sous Access (et en l'adaptant dans les Debug.Print), pourrais-je l'utiliser sans encombre ?
Bonjour,
Code:pourrais-je l'utiliser sans encombre ?
Je ne connais pas cette fonction.
En tout cas, tu ne risques rien en essayant !
P.-S. Préviens-nous si jamais cela a provoqué le reformatage de ton disque dur ! :mouarf:
Bonne chance.
Oui, c'est sûr que je vais tester. Au pire, mon ordi et mon entreprise explose et ça ne sera qu'un fait divers parmi tant d'autres en ce moment ^^
:bug:
Merci en tout cas ;)
Je croise les doigts !
Bonjour !!
Le code fonctionne mais ce n'est qu'une demi victoire...
L'utilisation de Worksheet.function détraque complètement l'opération "StDev" de mes requêtes. Impossible de l'utiliser lorsque le module est actif. :(
késako :koi:Citation:
l'opération "StDev" de mes requêtes
Désolé, je ne connais pas.
StDev = Standard Deviation
Il permet de calculer l'écart-type d'un ensemble de variables. Au même titre que la moyenne, la somme, la variance, etc... ;)
Oui, merci. Ça, j'ai trouvé sur internet !
Je voulais te dire que je ne peux pas t'aider davantage : mes connaissances en statistique sont trop lointaines pour comprendre comment faire fonctionner StDev et le test de Student.
J'espère qu'un autre participant plus doué* passera par ici.
Bonne continuation.
* et qui n'a pas encore eu le temps d'oublier ce qu'on apprend à la Fac.
Merci en tout cas !!
Bonjour,
Tu peux utiliser directement la fonction Excel sans avoir à ouvrir Excel.Citation:
Envoyé par StagiaireDK
Il suffit d'avoir la référence Visual Basic à Microsoft Excel x.x
Exemple qui fonctionne dans la fenêtre d'exécution:
Pour l'utiliser dans une requête il faudra en revanche créer une fonction frontale dans VBA.Code:?Excel.WorksheetFunction.TTest(Array(1,2,3,4), Array(2,3,4,5), 1, 2)
Par exemple:
Cependant, ce qui m'intrigue c'est comment tu veux l'utiliser dans une requête.Code:
1
2
3
4
5
6
7
8
9
10
11
12 Function fnXLTTest(vMatrice1 As Variant, vMatrice2 As Variant, dbl1 As Double, dbl2 As Double) ' dbl1 : Tails - spécifie le nombre de points de distribution. ' 1: Distribution à un point (unilatérale ). ' 2: Distribution à deux points (bilatérale). ' dbl2 : Type - type de test T à effectuer ' 1: Couplé (par paire) ' 2: Écart égal à deux échantillons (homoscédastique) ' 3: Écart inégal à deux échantillons (hétéroscédastique) fnXLTTest = Excel.WorksheetFunction.TTest(vMatrice1, vMatrice2, dbl1, dbl2) End Function
Tu parles de StDev ce qui laisse entendre que tu es dans une requête de regroupement.
StDev est, dans ce contexte, une fonction d'agrégation SQL c'est à dire une fonction du moteur de base de données.
A ma connaissance on ne peut pas créer de fonctions de ce type.
A+
Bonjour LedZeppII,
Merci pour votre réponse ! Je vais essayer votre méthode en croisant les doigts pour que ça marche.
Je ne saurais expliquer pourquoi "worksheet.function" a détraqué StDev. Access et ses mystères... Je suis aussi perplexe que vous !
Merci encore une fois pour votre aide !! ;)