Exemple Excel
Le dossier «Mod4_Exemple_Excel» contient un petit exemple de l'utilisation
«cachée» d'une feuille de calcul dans le but de faire traiter par celle-ci certains calculs pointus dont Excel «connaît la formule». Par exemple, lors de l'élaboration d'une application pour un hôpital, le programmeur doit à un moment donné fournir des calculs très sophistiqués sur une des données d'un patient.
Sachant que ces calculs sont déjà défini dans les feuilles Excel, il peut utiliser en arrière-plan une feuille de calcul, y placer ses données et la formule et ensuite y récolter ses résultats.
Notre exemple suppose, entre autres que l'application doit recevoir un résultat d'un test psychologique d'un patient et en établir le rang statistique à partir de ce résultat et de la distribution normale du test en question. La distribution
«normale» se définit par la moyenne (µ) et l'écart type (σ) de ce test tel qu'appliqué à la population générale. Par exemple, le test de QI (quotient Intellectuel) a une moyenne de 100 et un écart type de 15. Comme la distribution des résultats suit une courbe normale, c'est autour de «100» (la moyenne) que se concentre la majorité de la population et la fréquence des «cas» diminue à mesure que l'on s'éloigne de la moyenne. La figure suivante illustre cette distribution.
0,00 0,01 0,02
40 50 60 70 80 90 100 110 120 130 140 150 160x
y
Moyenne arithmétique : 100 Ecart-Type : 15
Pour un résultat donné (par exemple 85), on veut donc comparer cette valeur avec celles de la population en général. Dans le cas de l'application, on désire savoir la hauteur de la courbe en ce point en pourcentage de la hauteur maximale de la courbe (au centre). On veut de plus obtenir quel pourcentage de la population a un score inférieur au score obtenu.
Les formules nécessaires à ces calculs sont assez complexes. Par exemple la fonction de densité (hauteur de la courbe) est donnée par l'équation suivante où
«x» est la valeur analysée (85), «µ» est la moyenne (100) et «σ» est l'écart type (15):
alors que la valeur cumulative (pourcentage «à gauche» de la valeur «x» est l'intégrale de cette équation «entre moins infini et x». Sans commentaire.
Or Excel possède une fonction nommée «NORMDIST()» qui permet de calculer ces deux valeurs automatiquement :
«Loi.Normale(85;100;15;Faux)» calculera la hauteur de la courbe au «point 85»,
«Loi.Normale(100;100;15;Faux)» calculera cette hauteur au «point 100», le rapport des deux donnera le pourcentage voulu,
«Loi.Normale(85;100;15;Vrai» calculera le«cumulatif jusqu'au «point 85».
PS : «NormDist(85,100,15, True)» dans la version anglaise.
L'application définit donc une référence à «Microsoft Excel XX» (version installée sur l'ordinateur). La procédure «Form_Load» ouvre une feuille de Excel au départ de l'application et le bouton «Calculer» utilise la feuille pour calculer les deux valeurs en jeu et les placer dans les «TextBox2» et «TextBox1» en utilisant la valeur du «TextBox1». Entrez donc une valeur dans la première case et appuyez sur le bouton pour obtenir les deux résultats.
NOTES
Dans le TP, le fichier existe déjà et «GetObject» l'ouvre via Excel à cause de l'extension «xls». Ici, on doit lancer l'application Excel, d'où la variable «UneApplic».
Puis on ajoute (méthode «Add») un nouveau classeur (vide). (ceux-ci possèdent trois feuilles par défaut donc on n'a pas à en créer.
pour une cellule donnée, la propriété «Formula» désigne la formule inscrite dans la cellule alors que la propriété «Value» retourne la valeur de cette cellule.
Avant de quitter, on doit enlever de la mémoire le processus «caché».