Calculer une moyenne par VBA

Fermé
freeycap Messages postés 87 Date d'inscription lundi 27 octobre 2014 Statut Membre Dernière intervention 3 septembre 2018 - 9 avril 2015 à 21:17
freeycap Messages postés 87 Date d'inscription lundi 27 octobre 2014 Statut Membre Dernière intervention 3 septembre 2018 - 10 avril 2015 à 15:19
Bonjour,

J'aimerai programmé avec vba des moyennes apparaissant sur une colonne (disons mon RangeA). Quelques fois, il n'y a aucune valeur sur certaines cellules de la colonne. Sans vba, je peux écrire ceci :
=SI(NBVAL(RangeA)=0;"";MOYENNE(RangeA))
Ca fait ma moyenne sans tenir compte des cellules vides.
Ca peut se traduire comment en vba ?
Merci d'avance
A voir également:

4 réponses

ozone_ Messages postés 1518 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 2 juin 2023 478
9 avril 2015 à 21:20
Salut,

Pourquoi utiliser le VBA alors que les formules classiques suffisent largement ?
1
freeycap Messages postés 87 Date d'inscription lundi 27 octobre 2014 Statut Membre Dernière intervention 3 septembre 2018
9 avril 2015 à 21:50
en fait c'est parce que le calcul de la moyenne fait déjà partie d'une macro plus complexe... c'est le résultat de ma moyenne qui ne convenait pas.... Le pire c'est que je n'avais pas fait attention, je m'en suis rendu compte devant mon boss dans l'analyse des résultas.... Ca la fout mal un peu quand même.... lol
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
9 avril 2015 à 21:57
Re,

J'espère que ce n'est pas toi qui à mis un -1 à Ozone avec qui je suis entièrement d'accord pourquoi faire simple quand on peut faire compliqué.
sa réponse ne mérite pas cette note négative surtout qu'il a essayé d'aider.
je remets la note à 0
0
freeycap Messages postés 87 Date d'inscription lundi 27 octobre 2014 Statut Membre Dernière intervention 3 septembre 2018
10 avril 2015 à 15:19
non non c'est pas moi, quand même...
0
ozone_ Messages postés 1518 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 2 juin 2023 478
Modifié par ozone_ le 9/04/2015 à 21:35
J'avais mal compris :

Si tu veux faire une moyenne en excluant les zéros/cellules vides :

=SOMME(PLAGE)/(NB(PLAGE)-NB.SI(PLAGE;"=0")) 


1f u c4n r34d th1s u r34lly n33d t0 g37 l41d !
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
Modifié par Mike-31 le 9/04/2015 à 21:41
Bonsoir,

Pourquoi as tu écrit cette formule
=SI(NBVAL(RangeA)=0;"";MOYENNE(RangeA))

si c'est pour gérer l'erreur dans le cas de cellule vide depuis Excel 2007 tu peux écrire
=SIERREUR(MOYENNE(A2:A20);"")

pour une moyenne cette formule suffit
=MOYENNE(A2:A20)

en VBA
Application.Average(Range(Range("A2"), Range("A65536").End(xlUp)))
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
freeycap Messages postés 87 Date d'inscription lundi 27 octobre 2014 Statut Membre Dernière intervention 3 septembre 2018
9 avril 2015 à 21:50
Merci pour vos réponses, je vais tester ca de ce pas...
0