VBA : Calcul de moyenne

Résolu
actaris51 Messages postés 106 Statut Membre -  
actaris51 Messages postés 106 Statut Membre -
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
Configuration: Windows 2000 Internet Explorer 6.0

3 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  3. actaris51 Messages postés 106 Statut Membre 2
     
    Vos deux solutions marchent.
    Merci beaucoup !
    0