Calcul de la moyenne en fonction de la valeur d'une cellule

phenix873

XLDnaute Nouveau
Bonjour,
Débutant en vba, je viens sur ce forum pour poser une question :)Voilà mon problème:
Dans ma feuille de calcul , j'ai deux colonne qui contient des données numériques:
Ligne colonne C colonne G
1 234 4
2 345 4
3 654 4
4 125 5
5 654 5
6 125 5

Je souhaite parcourir la colonne G: si je trouve la valeur 4, je récupère le numéro de la ligne(début et la fin) et ainsi de suite pour la valeur 5. Ensuite, je voudrais stocker le début et la fin dans des variables afin de calculer la moyenne des valeurs correspondantes qui se trouvent dans la colonne C. ex: si la première cellule contient 4 alors stocker la ligne 1 dans var "Debut" et passer à la ligne suivante jusqu'à la ligne 3 où je stockerai cette dernière dans var "Fin". Ensuite je fais la moyenne de ces trois lignes. Je dois faire la même chose pour les autres chiffres de la colonne G.

Pourriez-vous me donner un début d'explication pour pouvoir écrire un petit bout de code VBA?

Merci infiniment de votre aide, en espérant d'avoir été assez clair :)

Cordialement
 

job75

XLDnaute Barbatruc
Re : Calcul de la moyenne en fonction de la valeur d'une cellule

Bonjour,

Si l'objet est finalement de calculer la moyenne des nombres colonne C pour chaque valeur colonne G, entrez en H1 la formule :

=SI(G1<G2;SOMME.SI(G:G;G1;C:C)/NB.SI(G:G;G1);"")

puis tirer vers le bas. Cela suppose que le tableau C:G ait été trié par ordre croissant sur la colonne G.

Pour écrire cela en VBA, il vous faut étudier par une boucle For Each Cel... Next les cellules de la colonne G et calculer pour chaque cellule la formule précédente. Le code sera donc :

Code:
moyenne = IIf(Cel < Cel.Offset(1), Application.SumIf([G:G], Cel, [C:C]) / Application.CountIf([G:G], Cel), "")

Ensuite vous utilisez la variable "moyenne" comme vous le voulez, avec bien sûr un test comme :

If IsNumeric(moyenne) Then... Else... ou plus simplement :
If moyenne = "" Then... Else...

A+
 
Dernière édition:

Discussions similaires

Réponses
22
Affichages
775
Réponses
11
Affichages
514

Statistiques des forums

Discussions
312 211
Messages
2 086 286
Membres
103 170
dernier inscrit
HASSEN@45