Sur Access 2000, besoin de calculer les quartiles de résultats biologiques
dans une population. Cette fonction est disponible dans Excel, mais la
population est trop grande pour que ce soit utilisable. Msowcf.dll semble
installée.
Sur Access 2000, besoin de calculer les quartiles de résultats biologiques
dans une population. Cette fonction est disponible dans Excel, mais la
population est trop grande pour que ce soit utilisable. Msowcf.dll semble
installée.
Sur Access 2000, besoin de calculer les quartiles de résultats biologiques
dans une population. Cette fonction est disponible dans Excel, mais la
population est trop grande pour que ce soit utilisable. Msowcf.dll semble
installée.
Bonjour,
Je n'ai pas trouvé comment avec MSOWCF.DLL passer le 1er argument à la
fonction QUARTILE compte tenu qu'il s'agit d'un argument défini comme
IXRangeEnum. ( Question pour un spécialiste : comment convertir un Array
en IXRangeEnum ?)
Pour d'autres fonctions qui n'utilisent pas ce type, ça donnerait:
Public Function fnCombinaison(ByVal NombreTotal As Double, ByVal
NombreChoix As Double) As Double
'référence à msowcf.dll
' Nombre de combinaisons de p éléments parmi n
Dim oFunc As Object
Set oFunc = New MSOWCFLib.OCFunc
fnCombinaison = oFunc.COMBIN(NombreTotal, NombreChoix)
Set oFunc = Nothing
End Function
Print fnCombinaison(5,3) retourne 10
Par contournement, tu peux le faire avec Automation
Function fnQuartile(UnChamp As String, UneTable As String, UnRang As
Byte) As Double
'référence à Microsoft Excel x.x Object Library
'référence à Microsoft DAO 3.x Object Library
Dim objExcel As Excel.Application
Dim rst As DAO.Recordset, strSQL As String, nb As Long
Dim i As Long
Set objExcel = CreateObject("Excel.Application")
strSQL = "Select [" & UnChamp & "] from [" & UneTable & "];"
Set rst = CurrentDb.OpenRecordset(strSQL)
rst.MoveLast: rst.MoveFirst: nb = rst.RecordCount
ReDim arrValeur(nb - 1)
While Not rst.EOF
arrValeur(i) = rst(0)
i = 1 + 1
rst.MoveNext
Wend
'1 pour le 1er quartile, 2 pour la médiane, 3 pour le 3eme quartile
fnQuartile = objExcel.Application.QUARTILE(arrValeur, UnRang)
objExcel.Quit
Erase arrValeur
Set rst = Nothing
Set objExcel = Nothing
End Function
Tu copies la fonction dans un module global et tu l'appelles dans une
requête que tu mets en regroupement puisque la fonction ne renvoie
qu'une seule valeur.
Champ1:Quartile1: fnQuartile("NomChamp";"NomTable";1)
Champ2:Médiane: fnQuartile("NomChamp";"NomTable";2)
Champ3:Quartile3: fnQuartile("NomChamp";"NomTable";3)
Opérations pour les 3 champs : Regroupement
Si tu veux limiter les enregistrements sur lesquels les quartiles sont
calculés, il te faudra rajouter une clause Where dans la définition du sql.Sur Access 2000, besoin de calculer les quartiles de résultats biologiques
dans une population. Cette fonction est disponible dans Excel, mais la
population est trop grande pour que ce soit utilisable. Msowcf.dll semble
installée.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
Je n'ai pas trouvé comment avec MSOWCF.DLL passer le 1er argument à la
fonction QUARTILE compte tenu qu'il s'agit d'un argument défini comme
IXRangeEnum. ( Question pour un spécialiste : comment convertir un Array
en IXRangeEnum ?)
Pour d'autres fonctions qui n'utilisent pas ce type, ça donnerait:
Public Function fnCombinaison(ByVal NombreTotal As Double, ByVal
NombreChoix As Double) As Double
'référence à msowcf.dll
' Nombre de combinaisons de p éléments parmi n
Dim oFunc As Object
Set oFunc = New MSOWCFLib.OCFunc
fnCombinaison = oFunc.COMBIN(NombreTotal, NombreChoix)
Set oFunc = Nothing
End Function
Print fnCombinaison(5,3) retourne 10
Par contournement, tu peux le faire avec Automation
Function fnQuartile(UnChamp As String, UneTable As String, UnRang As
Byte) As Double
'référence à Microsoft Excel x.x Object Library
'référence à Microsoft DAO 3.x Object Library
Dim objExcel As Excel.Application
Dim rst As DAO.Recordset, strSQL As String, nb As Long
Dim i As Long
Set objExcel = CreateObject("Excel.Application")
strSQL = "Select [" & UnChamp & "] from [" & UneTable & "];"
Set rst = CurrentDb.OpenRecordset(strSQL)
rst.MoveLast: rst.MoveFirst: nb = rst.RecordCount
ReDim arrValeur(nb - 1)
While Not rst.EOF
arrValeur(i) = rst(0)
i = 1 + 1
rst.MoveNext
Wend
'1 pour le 1er quartile, 2 pour la médiane, 3 pour le 3eme quartile
fnQuartile = objExcel.Application.QUARTILE(arrValeur, UnRang)
objExcel.Quit
Erase arrValeur
Set rst = Nothing
Set objExcel = Nothing
End Function
Tu copies la fonction dans un module global et tu l'appelles dans une
requête que tu mets en regroupement puisque la fonction ne renvoie
qu'une seule valeur.
Champ1:Quartile1: fnQuartile("NomChamp";"NomTable";1)
Champ2:Médiane: fnQuartile("NomChamp";"NomTable";2)
Champ3:Quartile3: fnQuartile("NomChamp";"NomTable";3)
Opérations pour les 3 champs : Regroupement
Si tu veux limiter les enregistrements sur lesquels les quartiles sont
calculés, il te faudra rajouter une clause Where dans la définition du sql.
Sur Access 2000, besoin de calculer les quartiles de résultats biologiques
dans une population. Cette fonction est disponible dans Excel, mais la
population est trop grande pour que ce soit utilisable. Msowcf.dll semble
installée.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
Je n'ai pas trouvé comment avec MSOWCF.DLL passer le 1er argument à la
fonction QUARTILE compte tenu qu'il s'agit d'un argument défini comme
IXRangeEnum. ( Question pour un spécialiste : comment convertir un Array
en IXRangeEnum ?)
Pour d'autres fonctions qui n'utilisent pas ce type, ça donnerait:
Public Function fnCombinaison(ByVal NombreTotal As Double, ByVal
NombreChoix As Double) As Double
'référence à msowcf.dll
' Nombre de combinaisons de p éléments parmi n
Dim oFunc As Object
Set oFunc = New MSOWCFLib.OCFunc
fnCombinaison = oFunc.COMBIN(NombreTotal, NombreChoix)
Set oFunc = Nothing
End Function
Print fnCombinaison(5,3) retourne 10
Par contournement, tu peux le faire avec Automation
Function fnQuartile(UnChamp As String, UneTable As String, UnRang As
Byte) As Double
'référence à Microsoft Excel x.x Object Library
'référence à Microsoft DAO 3.x Object Library
Dim objExcel As Excel.Application
Dim rst As DAO.Recordset, strSQL As String, nb As Long
Dim i As Long
Set objExcel = CreateObject("Excel.Application")
strSQL = "Select [" & UnChamp & "] from [" & UneTable & "];"
Set rst = CurrentDb.OpenRecordset(strSQL)
rst.MoveLast: rst.MoveFirst: nb = rst.RecordCount
ReDim arrValeur(nb - 1)
While Not rst.EOF
arrValeur(i) = rst(0)
i = 1 + 1
rst.MoveNext
Wend
'1 pour le 1er quartile, 2 pour la médiane, 3 pour le 3eme quartile
fnQuartile = objExcel.Application.QUARTILE(arrValeur, UnRang)
objExcel.Quit
Erase arrValeur
Set rst = Nothing
Set objExcel = Nothing
End Function
Tu copies la fonction dans un module global et tu l'appelles dans une
requête que tu mets en regroupement puisque la fonction ne renvoie
qu'une seule valeur.
Champ1:Quartile1: fnQuartile("NomChamp";"NomTable";1)
Champ2:Médiane: fnQuartile("NomChamp";"NomTable";2)
Champ3:Quartile3: fnQuartile("NomChamp";"NomTable";3)
Opérations pour les 3 champs : Regroupement
Si tu veux limiter les enregistrements sur lesquels les quartiles sont
calculés, il te faudra rajouter une clause Where dans la définition du sql.Sur Access 2000, besoin de calculer les quartiles de résultats biologiques
dans une population. Cette fonction est disponible dans Excel, mais la
population est trop grande pour que ce soit utilisable. Msowcf.dll semble
installée.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
Je n'ai pas trouvé comment avec MSOWCF.DLL passer le 1er argument à la
fonction QUARTILE compte tenu qu'il s'agit d'un argument défini comme
IXRangeEnum. ( Question pour un spécialiste : comment convertir un Array
en IXRangeEnum ?)
Pour d'autres fonctions qui n'utilisent pas ce type, ça donnerait:
Public Function fnCombinaison(ByVal NombreTotal As Double, ByVal
NombreChoix As Double) As Double
'référence à msowcf.dll
' Nombre de combinaisons de p éléments parmi n
Dim oFunc As Object
Set oFunc = New MSOWCFLib.OCFunc
fnCombinaison = oFunc.COMBIN(NombreTotal, NombreChoix)
Set oFunc = Nothing
End Function
Print fnCombinaison(5,3) retourne 10
Par contournement, tu peux le faire avec Automation
Function fnQuartile(UnChamp As String, UneTable As String, UnRang As
Byte) As Double
'référence à Microsoft Excel x.x Object Library
'référence à Microsoft DAO 3.x Object Library
Dim objExcel As Excel.Application
Dim rst As DAO.Recordset, strSQL As String, nb As Long
Dim i As Long
Set objExcel = CreateObject("Excel.Application")
strSQL = "Select [" & UnChamp & "] from [" & UneTable & "];"
Set rst = CurrentDb.OpenRecordset(strSQL)
rst.MoveLast: rst.MoveFirst: nb = rst.RecordCount
ReDim arrValeur(nb - 1)
While Not rst.EOF
arrValeur(i) = rst(0)
i = 1 + 1
rst.MoveNext
Wend
'1 pour le 1er quartile, 2 pour la médiane, 3 pour le 3eme quartile
fnQuartile = objExcel.Application.QUARTILE(arrValeur, UnRang)
objExcel.Quit
Erase arrValeur
Set rst = Nothing
Set objExcel = Nothing
End Function
Tu copies la fonction dans un module global et tu l'appelles dans une
requête que tu mets en regroupement puisque la fonction ne renvoie
qu'une seule valeur.
Champ1:Quartile1: fnQuartile("NomChamp";"NomTable";1)
Champ2:Médiane: fnQuartile("NomChamp";"NomTable";2)
Champ3:Quartile3: fnQuartile("NomChamp";"NomTable";3)
Opérations pour les 3 champs : Regroupement
Si tu veux limiter les enregistrements sur lesquels les quartiles sont
calculés, il te faudra rajouter une clause Where dans la définition du sql.Sur Access 2000, besoin de calculer les quartiles de résultats biologiques
dans une population. Cette fonction est disponible dans Excel, mais la
population est trop grande pour que ce soit utilisable. Msowcf.dll semble
installée.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
Je n'ai pas trouvé comment avec MSOWCF.DLL passer le 1er argument à la
fonction QUARTILE compte tenu qu'il s'agit d'un argument défini comme
IXRangeEnum. ( Question pour un spécialiste : comment convertir un Array
en IXRangeEnum ?)
Pour d'autres fonctions qui n'utilisent pas ce type, ça donnerait:
Public Function fnCombinaison(ByVal NombreTotal As Double, ByVal
NombreChoix As Double) As Double
'référence à msowcf.dll
' Nombre de combinaisons de p éléments parmi n
Dim oFunc As Object
Set oFunc = New MSOWCFLib.OCFunc
fnCombinaison = oFunc.COMBIN(NombreTotal, NombreChoix)
Set oFunc = Nothing
End Function
Print fnCombinaison(5,3) retourne 10
Par contournement, tu peux le faire avec Automation
Function fnQuartile(UnChamp As String, UneTable As String, UnRang As
Byte) As Double
'référence à Microsoft Excel x.x Object Library
'référence à Microsoft DAO 3.x Object Library
Dim objExcel As Excel.Application
Dim rst As DAO.Recordset, strSQL As String, nb As Long
Dim i As Long
Set objExcel = CreateObject("Excel.Application")
strSQL = "Select [" & UnChamp & "] from [" & UneTable & "];"
Set rst = CurrentDb.OpenRecordset(strSQL)
rst.MoveLast: rst.MoveFirst: nb = rst.RecordCount
ReDim arrValeur(nb - 1)
While Not rst.EOF
arrValeur(i) = rst(0)
i = 1 + 1
rst.MoveNext
Wend
'1 pour le 1er quartile, 2 pour la médiane, 3 pour le 3eme quartile
fnQuartile = objExcel.Application.QUARTILE(arrValeur, UnRang)
objExcel.Quit
Erase arrValeur
Set rst = Nothing
Set objExcel = Nothing
End Function
Tu copies la fonction dans un module global et tu l'appelles dans une
requête que tu mets en regroupement puisque la fonction ne renvoie
qu'une seule valeur.
Champ1:Quartile1: fnQuartile("NomChamp";"NomTable";1)
Champ2:Médiane: fnQuartile("NomChamp";"NomTable";2)
Champ3:Quartile3: fnQuartile("NomChamp";"NomTable";3)
Opérations pour les 3 champs : Regroupement
Si tu veux limiter les enregistrements sur lesquels les quartiles sont
calculés, il te faudra rajouter une clause Where dans la définition du sql.
Sur Access 2000, besoin de calculer les quartiles de résultats biologiques
dans une population. Cette fonction est disponible dans Excel, mais la
population est trop grande pour que ce soit utilisable. Msowcf.dll semble
installée.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
Je n'ai pas trouvé comment avec MSOWCF.DLL passer le 1er argument à la
fonction QUARTILE compte tenu qu'il s'agit d'un argument défini comme
IXRangeEnum. ( Question pour un spécialiste : comment convertir un Array
en IXRangeEnum ?)
Pour d'autres fonctions qui n'utilisent pas ce type, ça donnerait:
Public Function fnCombinaison(ByVal NombreTotal As Double, ByVal
NombreChoix As Double) As Double
'référence à msowcf.dll
' Nombre de combinaisons de p éléments parmi n
Dim oFunc As Object
Set oFunc = New MSOWCFLib.OCFunc
fnCombinaison = oFunc.COMBIN(NombreTotal, NombreChoix)
Set oFunc = Nothing
End Function
Print fnCombinaison(5,3) retourne 10
Par contournement, tu peux le faire avec Automation
Function fnQuartile(UnChamp As String, UneTable As String, UnRang As
Byte) As Double
'référence à Microsoft Excel x.x Object Library
'référence à Microsoft DAO 3.x Object Library
Dim objExcel As Excel.Application
Dim rst As DAO.Recordset, strSQL As String, nb As Long
Dim i As Long
Set objExcel = CreateObject("Excel.Application")
strSQL = "Select [" & UnChamp & "] from [" & UneTable & "];"
Set rst = CurrentDb.OpenRecordset(strSQL)
rst.MoveLast: rst.MoveFirst: nb = rst.RecordCount
ReDim arrValeur(nb - 1)
While Not rst.EOF
arrValeur(i) = rst(0)
i = 1 + 1
rst.MoveNext
Wend
'1 pour le 1er quartile, 2 pour la médiane, 3 pour le 3eme quartile
fnQuartile = objExcel.Application.QUARTILE(arrValeur, UnRang)
objExcel.Quit
Erase arrValeur
Set rst = Nothing
Set objExcel = Nothing
End Function
Tu copies la fonction dans un module global et tu l'appelles dans une
requête que tu mets en regroupement puisque la fonction ne renvoie
qu'une seule valeur.
Champ1:Quartile1: fnQuartile("NomChamp";"NomTable";1)
Champ2:Médiane: fnQuartile("NomChamp";"NomTable";2)
Champ3:Quartile3: fnQuartile("NomChamp";"NomTable";3)
Opérations pour les 3 champs : Regroupement
Si tu veux limiter les enregistrements sur lesquels les quartiles sont
calculés, il te faudra rajouter une clause Where dans la définition du sql.Sur Access 2000, besoin de calculer les quartiles de résultats biologiques
dans une population. Cette fonction est disponible dans Excel, mais la
population est trop grande pour que ce soit utilisable. Msowcf.dll semble
installée.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
votre procédure fonctionne, mais j'ai du pain sur la planche pour
l'appliquer à ma population en sélectionnant automatiquement des critères
supplémentaires.
(petite erreur ? i = 1 + 1 ou i = i +1)
Merci, vous m'avez ouvert un grande porte
Cordialement
F. TALLET
Bonjour,
votre procédure fonctionne, mais j'ai du pain sur la planche pour
l'appliquer à ma population en sélectionnant automatiquement des critères
supplémentaires.
(petite erreur ? i = 1 + 1 ou i = i +1)
Merci, vous m'avez ouvert un grande porte
Cordialement
F. TALLET
Bonjour,
votre procédure fonctionne, mais j'ai du pain sur la planche pour
l'appliquer à ma population en sélectionnant automatiquement des critères
supplémentaires.
(petite erreur ? i = 1 + 1 ou i = i +1)
Merci, vous m'avez ouvert un grande porte
Cordialement
F. TALLET