Moyenne en vb

Fermé
simplement_mimi - 14 juin 2010 à 17:00
 simplement_mimi - 14 juin 2010 à 18:25
Bonjour,
j'ai un souci
voila j'ai deux colonnes
en A les noms de sites et en B des valeurs associés a ces noms
je voudrais faire une moyenne de ces valeurs en sachant que le nombre de sites peut augmenter
comment je fais?
merci d avance


A voir également:

13 réponses

Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
14 juin 2010 à 17:03
si les rajout de sites sont manuel tu mets ta moyenne en bas de la liste de la colonne B, et tu rajoute les site en "insérant" des lignes
La fonction moyenne se débrouillera.

Si les rajouts de site sont automatique, ou si la moyenne est ailleurs, il faudra passer par une macro, c'est beaucoup plus compliqué comme solution.
0
simplement_mimi
14 juin 2010 à 17:05
ben justement c'est automatique et la moyenne est ailleur lol
tu sais comment on peut faire?
0
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
14 juin 2010 à 17:21
il va falloir coder, en VBA, la création de la moyenne.
si le processus de chargement des site est automatique, il faut rajouter une macro, ou modifier celle qui fait le chargement, qui fera la moyenne

i=1
val=0
while not isempty(sheets("feuille_avec_site").cells(2,i))
val = val+sheets("feuille_avec_site").cells(2,i).value
 i=i+1
wend
moy = val/i
sheets("feuille_avec_moyenne").cells(num_col, num_ligne).value=moy


tu remplace num_col et num_ligne par les coordonnée de la cellule qui contient la moyenne

si la liste des site ne commence pas a la ligne 1 (genre une entete, ou des ligne vide) tu ajuste la valeur de départ de i, et tu remplace la division "val/i" par "val/(i-nbligne_a_ignorer"
0
simplement_mimi
14 juin 2010 à 17:28
ok je vais tester ça tout de suite
merci bcp
0

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

Posez votre question
simplement_mimi
14 juin 2010 à 17:53
ça marche pas
mon code c le suivant

Sub moyenne()
            Dim i As Integer
Dim val As Integer
i = 2
val = 0
While Not IsEmpty(Sheets("pr mois").Cells(2, i))
val = val + Sheets("pr mois").Cells(2, i).Value
 i = i + 1
Wend
moy = val / i
Sheets("TOTAL MOIS").Cells(2, 2).Value = moy

End Sub


ca me met une erreur au niveau de val= val+...
je comprend pas...
le 2 dans cells(2,i) correspond a koi dans ton code??
0
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
14 juin 2010 à 17:56
2 = 2eme colonne, donc B

est-ce que tes valeurs sont bien numériques?
0
simplement_mimi
14 juin 2010 à 18:03
oui j'ai verifier
le message d erreur c'est imcompatibilite de type
0
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
14 juin 2010 à 18:07
ah, oué, si c'est des chiffres a virgule, INTEGER n'est pas une bonne idée:)

essaye "Single" ou "Double" dans ta déclaration de variable
0
simplement_mimi
14 juin 2010 à 18:09
je ne sais pa ce que j ai changé mais ça ne met plus ce message d erreur la mais now ça me met l indice n est pas dans la selection en ce qui concerne la ligne
While Not IsEmpty(Sheets("pr mois").Cells(2, i))
0
simplement_mimi
14 juin 2010 à 18:13
je ne sais pas comment j'ai fai
g trifouiller lol et ça marche tres bien merci bcp pour ton aide
0
simplement_mimi
14 juin 2010 à 18:14
tu t en sors pour tt ski es programmation en vb?
parce que en fait je suis sur un projet pour mon boulo et je seche un peu bcp
0
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
14 juin 2010 à 18:22
eheh, oui je m'en sors pas mal, mais je facture aussi :D
0
simplement_mimi
14 juin 2010 à 18:25
tu pense bien que si j avais les moyens de payer je serai pas sur un forum gratuit....
0