VBA : Calcul de moyenne

Résolu/Fermé
actaris51 Messages postés 93 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 11 juillet 2011 - 26 août 2009 à 14:10
actaris51 Messages postés 93 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 11 juillet 2011 - 27 août 2009 à 09:34
Bonjour,
Je possède un fichier de ce type :
http://www.cijoint.fr/cjlink.php?file=cj200908/cijevJI4Eq.xls
Dans ma feuille "données", je possède des indicateurs, mis à jours tous les mois.
Par exemple, ici j'ai mis des données pour la week 36, mais un mois plus tard, pour la week 40 il y aura de nouvelles données.
Je voudrais, dans ma feuilles "KPIs" calculer la moyenne des dernieres valeurs par indicateurs (par exemple ici, cela correspond à la moyenne de N3 à N11 pour le 1er indicateur et N12 à N20 pour le second.
Seulement je n'arrive pas à écrire une macro qui va chercher les dernieres valeurs remplies afin de pouvoir calculer la moyenne.
Pouvez vous m'aider ??
Merci

3 réponses

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
26 août 2009 à 16:28
Bonjour,

Voici le code mais ca ne correspond pas tout à fait à te demande mais dis moi si ca t'irait :

sub moyenne

dim i,j,nbre,addition, indicateur, semaine as string
sheets"données").select
i=""
do while i=""
i = inputbox("Sur quelle semaine voulez-vous calculer la moyenne ?","Définition de la semaine")
if not isnumeric(i) then
i = msgbox("Vous n'avez pas tapé un chiffre, Voulez-vous continuer?",vbyesno,"Erreur dans la saisie de la semaine")
if i = 7 then
end sub
else
i=""
end if

else
if i < 0 or i > 53 then
i = msgbox("Vous avez pas tapé une semaine erronnée, Voulez-vous continuer?",vbyesno,"Erreur dans la saisie de la semaine")
if i = 7 then
end sub
else
i=""
end if
end if
end if

semaine = i
if semaine <> ""
i= 2
j =5
cells(i,j).select
do while cells(i,j) <> semaine
j=j+1
if cells(i,j)="" then
cells(i,j) = semaine
semaine = ""
end if
loop

if semaine = "" then
semaine = 2
i =msgbox ("La semaine saisie n'est pas dans le tableau! voulez-vous continuer?", vbyesno, "Erreur dans la saisie")
if i = 7 then
end sub
else
i=""
end if
end if
end if
loop

if semaine <> "" then
nbre=0
addition = 0
i=3
cells(i,3).select
indicateur = selection
do while indicateur <> ""
cells(i,j).select
nbre=selection + nbre
addition = addition +1
i=i+1
do while cells(i,3) = ""
i=i+1
nbre = nbre+cells(i,j)
addition = addition +1
loop
sheets("kpis").select

cells(semaine,2) = indicateur
cells(semaine,3) = nbre / addition
semaine = semaine +1

sheets("données").select
cells(i,3).select
indicateur = selection
loop
end if
end sub


Regarde si il n'y a pas d'ereur et si ca t'irait
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
26 août 2009 à 21:33
Bonsoir,

Je n'ai pas dû avoir la même comprehension mais sait-on jamais...
J'ai supposé que les X en colonnes R, V, ... n'y étaient pas en réalité.

    dercol = [IV3].End(xlToLeft).Column
    ' moyenne lignes 3 à 11
    moy1 = Application.WorksheetFunction.Average(Range(Cells(3, dercol), Cells(11, dercol)))


eric
0
actaris51 Messages postés 93 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 11 juillet 2011 2
27 août 2009 à 09:34
Vos deux solutions marchent.
Merci beaucoup !
0