Mauvais calcul de moyenne

Résolu/Fermé
freeycap Messages postés 87 Date d'inscription lundi 27 octobre 2014 Statut Membre Dernière intervention 3 septembre 2018 - 16 juin 2015 à 18:40
freeycap Messages postés 87 Date d'inscription lundi 27 octobre 2014 Statut Membre Dernière intervention 3 septembre 2018 - 18 juin 2015 à 04:06
Bonjour,

J'ai un dossier Excel qui doit calculer des moyennes qui permettent de suivre des sondages de satisfaction d'apprernants suite à une formation donnée par des formateurs.
Dans la page 'SAISIE', les formateurs entrent les résultats du sondage de l'évaluation qu'ils ont donné,
Dans la page 'DATA', je stocke des informations des résultats des sondages de satisfaction,
Dans la page 'ADMIN', j'extrais les informations en fonction de mes besoins pour faire des évaluations.
La page 'GRAPH', n'est pas encore exploitée.

Mon problème est le suivant : dans mon code, je demande à faire des moyennes en faisant la somme des valeurs divisée par le nombre de lignes trouvées.
Mais souvent, j'ai des cellules qui sont vides... et qui ne devraient pas être inclues dans le calcul de ma moyenne (comme le fait Excel pour calculer ses moyennes). Mais mon code prend en compte les champs vides, ce qui fait que ma moyenne est complètement faussée.

Je ne sais pas comment reprendre mon code pour corriger ca. J'ai besoin d'aide pour ca.

Je mets le dossier en lien pour aider à comprendre :
http://www.cjoint.com/c/EFqqN4FU0zG



Merci d'avance
A voir également:

5 réponses

eriiic Messages postés 24585 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 27 juin 2024 7 226
16 juin 2015 à 22:23
Bonjour,

Tu aurais pu guider un peu sur l'emplacement du code à contrôler.

Application.CountIf([C20:C23], vbNullString)

te donne le nombre de cellules vides.

eric
freeycap Messages postés 87 Date d'inscription lundi 27 octobre 2014 Statut Membre Dernière intervention 3 septembre 2018
16 juin 2015 à 22:33
Alors en fait tu me suggères dans ma feuille de DATA de faire remplacer les cellules vides par une valeur arbitraire comme 1000, finalement dans mon code, dans ma somme, retrancée la valeur totale des 1000 ?
geo trouve-tout Messages postés 341 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 9 août 2023 58
17 juin 2015 à 19:51
esaie avec la réponse d'eriiic et sinon oui suis mon processus et mathrematiquement ca fonctionne ;)
0
freeycap Messages postés 87 Date d'inscription lundi 27 octobre 2014 Statut Membre Dernière intervention 3 septembre 2018
18 juin 2015 à 00:57
Désolé pour le délai de réponse... ca bosse fort...
Oui je vais essayer cette méthode tantôt.
Je vous donne des nouvelles après.
freeycap Messages postés 87 Date d'inscription lundi 27 octobre 2014 Statut Membre Dernière intervention 3 septembre 2018
18 juin 2015 à 04:06
Alors d'abord, merci pour vos idées.
J'ai gardé le principe de compter le nombre de cellules vides et de le retrancher au nombre total de lignes trouvées.
Bon, j'avais plein de conditions à respecter, ce qui fait que j'ai rajouté plein de lignes dans ma macro.. j'suis tellement newb que n'importe quelle personne chevronnée palirait de honte en voyant tout ca... mais bref, le résultat fonctionne...
Merci grandement.

Problème solved !!!!!

Thums up encore une fois à CCM et à ses intervenants..

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
geo trouve-tout Messages postés 341 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 9 août 2023 58
Modifié par geo trouve-tout le 16/06/2015 à 21:33
Salut,

Je ne vois pas comment faire en code mais la seule solution que je vois est mathématique...
Tu ajoutes par défaut 1000 ( par exemple ) aux cases vides ( en espèrant que le total ne dépasse pas 1000 sinon tu remet un zéro en plus, tu comprendras après).

Partons du principe que tu as 8 données, et deux lignes blanches :

10
15
16

06
12
13

15
16

Donc là tu vois bien deux cases blanches, tu les remplaçe par 1000 :

10
15
16
1000
06
12
13
1000
15
16

Ce qui te donne 103 normalement ou 2103 avec l'ajout.
On part du principe que tu met dans une variable le vrai total sans les 1000 qu'on nommera TOTAL et le faux total TOTAL_FALSE. L'idéal serait que dès que la valeur dépasse 999 (ici), elle fait +1 à une variable par exemple BLANK.
A ce moment là, BLANK ==2.
Là, tu fais rentrer, mais tu n'es pas obligé de le faire, une troisième variable ( par exemple TT ). TT = BLANK*1000.
TT va donc être égal aux nombres ajoutés en plus.
Tu fais ensuite TOTAL = TOTAL_FALSE - TT

Maintenant, attaquons nous aux lignes :
Imaginons que le nombre de lignes soit dans la variable LIGNE, alors ici il affichera 10 alors que tu veux calculer qu'avec les 8 du coup. Ta moyenne sera donc MOYENNE = TOTAL / (LIGNE-BLANK)

Et tu peux tester, ça fonctionne! ;)

MOYENNE = 103 / (10-2) = 103/8 = LE BON RESULTAT!!

Après reste à voir comment tu peux mettre tout ça en plaçe, sous excel soit tu te débrouille avec les celleules, soit tu fais ça en VBA ;)

Voilou!! :)